没事千万别拿环境开玩笑!
——沃兹基·硕德
轻易不要尝试
轻易不要尝试
轻易不要尝试
由于之前使用的python版本过低,无法使用很多模块的新特性。然而在尝试更新python版本时遇到了很多坑,不仅把原python3更新为新版本后,原yum不能用了,而且pip也无法正常工作。且卸载python3老版本的时候不小心吧python2给卸载了,yum又需要python2。几番尝试之后无果,干脆全部重装算了!
卸载现有python(所有版本及模块)。
rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps ##强制删除已安装程序及其关联
whereis python |xargs rm -frv ##删除所有残余文件 ##xargs,允许你对输出执行其他某些命令
whereis python ##验证删除,返回无结果
卸载现有yum。
rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps
whereis yum |xargs rm -frv
使用python.org下载太慢,这里使用淘宝镜像下载。
https://registry.npmmirror.com/-/binary/python/2.7.15/Python-2.7.15.tgz
cd /usr/local/src
wget https://registry.npmmirror.com/-/binary/python/2.7.15/Python-2.7.15.tgz
tar -zxvf Python-2.7.15.tgz
cd Python-2.7.15
./configure
make && make install
创建软链接,将python2.7.15版本命名为python2,将python留给python3版本使用。
ln /usr/local/bin/python /usr/local/bin/python2
将涉及/usr/bin/python
的设置更新为/usr/bin/python2
,毕竟python2.7的软链接已经被改成了python2。
查找网上的教程都是通过以下yum命令安装的,然而我却总是显示没有匹配包,我也是挺无奈的。
yum -y install python-pip
干脆就直接使用源码安装算了,反正也不复杂。
# 1.下载python-pip包
wget https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz --no-check-certificate
# 2.安装pip之前需要先安装setuptools
wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg --no-check-certificate
chmod +x setuptools-0.6c11-py2.7.egg
sh setuptools-0.6c11-py2.7.egg
# 3.安装pip
chmod +x pip-1.3.1.tar.gz
tar xzvf pip-1.3.1.tar.gz
cd pip-1.3.1
python setup.py install
可以愉快的使用pip了。
据说yum的使用需要用到python2,具体我也没有细究,反正至少先安装好python2就行了。
以下链接与CentOS版本相关,具体链接可在网易镜像中依照具体系统查找。
cat /etc/centos-release # 查看系统版本号
# CentOS Linux release 7.6.1810 (Core)
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-8.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-iniparse-0.4-9.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/yum-3.4.3-158.el7.centos.noarch.rpm
rpm -ivh python-iniparse-0.4-9.el7.noarch.rpm
rpm -ivh python-urlgrabber-3.10-8.el7.noarch.rpm
rpm -ivh yum-3.4.3-158.el7.centos.noarch.rpm yum-metadata-parser-1.1.4-10.el7.x86_64.rpm yum-plugin-fastestmirror-1.1.31-45.el7.noarch.rpm
注意:yum和yum-plugin-xxx一定要同时安装,因为他们彼此依赖,先安装谁都会报错。
安装中途很可能会出现依赖错误导致安装失败,如python(abi) = 2.7 is needed by xxx
。
该错误则需要安装以下几个包:
python-libs-2.7.5-68.el7.x86_64.rpm
python-2.7.5-68.el7.x86_64.rpm
python-devel-2.7.5-68.el7.x86_64.rpm
注意:在安装时仍然会遇到依赖错误,那么安装提示在网易镜像中查找对应版本文件,使用wget下载后安装即可。
在使用yum安装时出现http404之类的错误,很有可能就是yum源有问题。
# 1.进入系统yum源目录
cd /etc/yum.repos.d
# 2.备份原来的yum源
mkdir bak && mv *.repo bak
# 3.下载yum源
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 4.改名成默认repo
mv CentOS7-Base-163.repo CentOS-Base.repo
# 5.生成缓存,是配置生效
yum makecache
# 6.验证配置源
yum repolist # 查看是否有163的标识
# 7.更新yum文件
yum update -y
接下来就可以正常使用yum了。
注意:修改时可能遇到/usr/bin/applydeltarpm not installed
的情况
缺什么安装什么就完事了!
yum provides '*/applydeltarpm'
yum install deltarpm -y
现在使用python开发基本都是使用python3了,自然不能少。python不能装太老的,因为以后可能官方就不支持了,也不能太新,因为还不稳定,资料也不够多,所以综合考虑python3.8就差不多了。
cd /usr/local/src
wget https://registry.npmmirror.com/-/binary/python/3.8.8/Python-3.8.8.tgz
tar -zxvf Python-3.8.8.tgz
cd Python-3.8.8
./configure
make && make install
安装后通过python3
就能使用该版本,不过一般都习惯只键入python
,所以在这里创建软链接即可
which python3 # 查看python3位置
# /usr/local/bin/python3
ln /usr/local/bin/python3 /usr/local/bin/python # 创建软链接
python -V # 查看版本
# Python 3.8.8
python3.8安装成功后,pip3就已经安装完毕了!键入pip3
就能正常使用,如果想将它设为默认的话,可以修改软链接。当然这一步其实可以不配置
which pip # 查看原pip
# /usr/local/bin/pip
mv /usr/local/bin/pip /usr/local/bin/pip_bak # 备份
which pip3 # 查看pip3位置
# /usr/local/bin/pip3
ln /usr/local/bin/pip3 /usr/local/bin/pip # 创建软链接
pip -V 查看当前pip版本
pip 20.2.3 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
完事!还是python3安装最简单。
至此终于把整个重装工作完成了!
网上的资料真是太坑了,要么不详细,要么根本就是直接偷别人的。fo了!