python2升级到3.8.2
采坑记录
(1)安装完成后使用pip报错:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
原因是:系统版本centos6.8,其中openssl的版本为OpenSSL 1.0.1e-fips 11 Feb 2013,而python3.7需要的openssl的版本为1.0.2或者1.1.x,需要对openssl进行升级,并重新编译python3.7.0。yum 安装的openssl 版本都比较低。
(2)pip安装工具包报错
Requirement already satisfied: pycrypto in /usr/local/lib/python3.8/site-packages (2.6.1)
需要指定安装路径
#pip install --target=–target=/usr/local/lib/python3.8/site-packages pycrypto
(3)安装时报错,没有‘_ctypes’模块
ModuleNotFoundError: No module named '_ctypes'
安装libffi-devel并重新编译python
#yum install libffi-devel
升级openssl
1、下载openssl
#wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
#tar -zxvf openssl-1.1.1a.tar.gz
#cd openssl-1.1.1a
2、编译安装
#./config --prefix=/usr/local/openssl no-zlib #不需要zlib
#make
#make install
3.备份原配置
#mv /usr/bin/openssl /usr/bin/openssl1.0.1
#mv /usr/include/openssl/ /usr/include/openssl1.0.1
4.新版配置
#ln -s /usr/local/openssl/include/openssl /usr/include/openssl
#ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
#ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
5.修改系统配置
写入openssl库文件的搜索路径
#echo “/usr/local/openssl/lib” >> /etc/ld.so.conf
使修改后的/etc/ld.so.conf生效
#ldconfig -v
查看openssl版本
#openssl version
升级python
1、安装相关依赖
#yum install gcc libffi-devel zlib* openssl-devel
2、下载并解压
#wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz
3、解压并编译:
#tar -xvJf Python-3.8.2.tar.xz
#cd Python-3.8.2
#./configure prefix=/usr/local --with-openssl=/usr/local/openssl
#make -j4 && make install
4、备份原配置
#mv /usr/bin/python /usr/bin/python2.6.6
5、新版配置
#ln -s /usr/local/bin/python3.8 /usr/bin/python
#ln -s /usr/local/bin/python3.8 /usr/local/bin/python
6、指定 yum 的Python版本
#vim /usr/bin/yum
#!/usr/bin/python2.6.6
7、配置iBus 把exec python 改为 exec python2.6
#vim /usr/bin/ibus-setup
#vim /usr/libexec/ibus-ui-gtk