今天在CentOS7.2上将python2.7升级至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 -yopenssl-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
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/python3/bin/python3 /usr/bin/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
yum -y install zlib zlib-devel
如果安装上述依赖库出现以下报错:Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
请执行以下操作:yum provides '*/applydeltarpm'
,出现上述问题的原因是缺少增量RPM条件,需要使用上述命令插叙具体缺少的套件名称,并进行安装。
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
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
pip3 install --upgrade pip
说明:此篇文章是自己在安装python3时使用的方法,已经遇到的一些问题。本文属于粘贴复制过来的,由于出处很多,就不在这里提供原文链接。