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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章