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