升级python的时候,一定要注意的是yum依赖的python是不能删除的,不然就会导致yum不能使用更新完事python后,我们需要重新的安装一下pip,不然pip回认为是老的python库。

Python镜像地址

https://www.python.org/ftp/python/

下载镜像

#下载3.6.2 版本
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
#解压文件
tar -zxvf Python-3.6.2.tgz

#安装编译所以来的工具
yum install -y make gcc gcc-c++ 
yum -y install zlib*
yum install openssl -y
yum install openssl-devel -y

#配置python
./configure
 
#编译并安装
#默认编译安装的python位置在”/usr/local/bin/“目录下
make && make install

#查看安装好的python
ll /usr/local/bin/py*

安装编译所以来的工具

Centos之python升级-yellowcong_vim

执行./configure

Centos之python升级-yellowcong_centos_02

编译安装成功

Centos之python升级-yellowcong_linux_03

可以看到,我们的python3.6已经安装上了。

Centos之python升级-yellowcong_vim_04

修改软链接

我们虽然是装好了python3.6 ,但是在系统的/usr/bin/目录下面,还是老的python,所以需要设定软连接

ll /usr/bin/python*

在途中可以看到,python 直接软连接到了python2,然后python2最后软连接到了python2.7上,yum依赖于python2.7版本,所以我们之能配置python的软连接为python3.6,老的pytohn2,我们不做修改。

Centos之python升级-yellowcong_python_05

1.链接python到python3.6

#删除原来的软连接
rm -f /usr/bin/python

#新建软连接
ln -s /usr/local/bin/python3 /usr/bin/python

#查看python信息
ll /usr/bin/python*

#查看版本信息
python -V
python2 -V

Centos之python升级-yellowcong_vim_06

2.修改yum配置

修改/usr/bin/yum/usr/bin/applydeltarpm这两个文件,设定为默认的python版本,这样yum才能正常使用。

#编辑yum
vim /usr/bin/yum
#这个配置文件负责下载yum安装文件的,也是需要修改为python2,默认的python版本
vim /usr/bin/applydeltarpm

#将
#!/usr/bin/python

修改为下面的,使用的是原来的python2.7的脚本,这样yum才能正常使用,不然报错。
#!/usr/bin/python2

Centos之python升级-yellowcong_linux_07

3.升级并修改pip

我们需要手动的修改pip引用的python的版本。不然就会导致pip认为的python版本和我们自己目前的版本不一致。

#升级pip
python -m pip install --upgrade --force pip 

#修改pip
vim /usr/bin/pip

#修改python2 为python
#!/usr/bin/python

Centos之python升级-yellowcong_linux_08

常见问题

1 zipimport.ZipImportError: can’t decompress data; zlib not available

导致这个问题的原因,是服务中,缺少zlib的依赖包所导致的这个问题。

yum -y install zlib*

Centos之python升级-yellowcong_软连接_09

2 yum 启动有问题

由于我们的python换成了3.6的版本,而yum使用默认是python脚本,这样就导致yum依赖的python脚本有问题,我们需要手动修改/usr/bin/yum#!/usr/bin/python修改为#!/usr/bin/python2

Centos之python升级-yellowcong_centos_10