centos7 python2.7升级python3.6

今天在CentOS7.2上将python2.7升级至python3.6时遇到了诸多问题,下面将升级步骤以及解决方法一一列举。

1.安装Python3.6

安装准备,这里应该切换到超级用户。

mkdir /usr/local/python3
wget --no-check-certificate https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar -xzvf Python-3.6.0.tgz
cd Python-3.6.0

在编译安装之前,需要注意一些事项,下面这些注意问题是我在安装以后,或者是安装完pip3以后遇到的问题,在这里提前告诉大家。

使用zlib库出错:

zipimport.ZipImportError: can't decompress data; zlib not available
Makefile:1079: recipe for target 'install' failed
make: *** [install] Error 1

问题分析

从错误信息分析,就是缺少了zlib的解压缩类库,安装即可

yum -y install zlib*

后面再安装完pip3以后,又碰到了ssl问题。

问题描述:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 

Collecting xxx 

解决办法:

①查看openssl安装包,发现缺少openssl-devel包 
[root@localhost ~]# rpm -aq|grep openssl 
openssl-0.9.8e-20.el5 

openssl-0.9.8e-20.el5 

②yum安装openssl-devel 

[root@localhost ~]# yum install openssl-devel -y 
查看安装结果  
[root@localhost ~]# rpm -aq|grep openssl 
openssl-0.9.8e-26.el5_9.1 
openssl-0.9.8e-26.el5_9.1 
openssl-devel-0.9.8e-26.el5_9.1 

openssl-devel-0.9.8e-26.el5_9.1

③修改python3里面的Setup文件

vi /path/to/Python-3.6.0/Modules/Setu

修改成下面:

 #Socket module helper for socket(2)
 _socket socketmodule.c     #把这段代码 前面的#去掉

 Socket module helper for SSL support; you must comment out the other
 socket line above, and possibly edit the SSL variable:
 #SSL=/usr/local/ssl
 _ssl _ssl.c \                                                    #把这段代码 前面的#去掉
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \     #把这段代码 前面的#去掉 
        -L$(SSL)/lib -lssl -lcrypto                               #把这段代码 前面的#去掉

完成上面两个任务以后,我们开始编译安装python3.

编译安装

./configure --prefix=/usr/local/python3
make && make install

将默认Python修改为Python3.6,并为其创建软连接

mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/python3/bin/python3 /usr/bin/python


修改yum使用的原python的配置文件

vim /usr/bin/yum
#!/usr/bin/python --> #!/usr/bin/python2.7
vim /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python --> #!/usr/bin/python2.7
因为yum不支持python3,所以需要把yum代码中的python 替换成 python2.7

2.安装pip3

安装pip依赖库

yum -y install zlib zlib-devel

如果安装上述依赖库出现以下报错:Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
请执行以下操作:yum provides '*/applydeltarpm',出现上述问题的原因是缺少增量RPM条件,需要使用上述命令插叙具体缺少的套件名称,并进行安装。

安装setuptools

Python的包管理工具,安装其他模块依赖此模块支持。

wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python3 setup.py build
python3 setup.py install

安装pip,并为其创建软连接

wget --no-check-certificate https://github.com/pypa/pip/archive/9.0.1.tar.gz
tar -zvxf 9.0.1 -C pip-9.0.1
cd pip-9.0.1
python3 setup.py install
ln -s /usr/local/python3/bin/pip /usr/bin/pip3

升级pip

pip3 install --upgrade pip


说明:此篇文章是自己在安装python3时使用的方法,已经遇到的一些问题。本文属于粘贴复制过来的,由于出处很多,就不在这里提供原文链接。






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值