CentOS 7.9自带的Python是2.7,已经是很古老的版本
通过源码编译升级到Python 3.8版本
官网下载地址
wget https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tgz
由于一些不可抗力的原因,官方下载并不是那么的顺畅,提供淘宝镜像站链接
备注:淘宝镜像 https://registry.npmmirror.com/binary.html?path=python/
wget https://cdn.npmmirror.com/binaries/python/3.8.18/Python-3.8.18.tgz
解压
tar -zxvf Python-3.8.18.tgz && cd Python-3.8.18
然后选择软链
方案1:创建一个Python3和Pip3的软链
ln -s /soft/Python-3.8.18/python3/bin/python3 /usr/bin/python3 ln -s /soft/Python-3.8.18/python3/bin/pip3 /usr/bin/pip3
此时系统中存在两个python版本:
命令 python 对应的仍是默认2.7版本
命令 python3 则对应新安装的3.8版本
查看版本
python3 -V pip3 -V
方案2:覆盖现有python,启动python时指向python3.8
备份旧python与pip
mv /usr/bin/python /usr/bin/python2_bak mv /usr/bin/pip /usr/bin/pip2_bak
把新编译的python3软链接过去
ln -s /soft/Python-3.8.18/python3/bin/python3 /usr/bin/python ln -s /soft/Python-3.8.18/python3/bin/pip3 /usr/bin/pip
方案2可能会导致一部分依赖于Python2的服务出现问题
如yum就会出现问题
编辑yum的文件
vim /usr/bin/yum
将第一行修改为
#!/usr/bin/python2.7
不过在安装软件时仍会报错:
SyntaxError: invalid syntax
File “/usr/libexec/urlgrabber-ext-down”, line 28
except OSError, e:还是因为python更换的原因, 依照上述操作修改文件即可
打开/usr/libexec/urlgrabber-ext-down 文件
将 #!/usr/bin/python 修改为 #!/usr/bin/python2.7
其他工具或库如果在安装过程中也报类似错误,同法处理
此时系统仍存在两个python版本
命令 python 对应的是新安装的3.8版本
命令 python2 对应之前的默认2.7版本