centos 解決python3.7 安裝時No module named _ssl

centos安裝python3.7時遇到如下問題,查閱知需要的openssl版本最低為1.0.2,但是centos 默認的為1.0.1,所以需要重新更新openssl

import _ssl       # if we can't import it, let the error propagate
ImportError: No module named _ssl

1、安裝依賴庫:

yum install -y zlib zlib-dev openssl-devel sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++

2、安裝最新版本的openssl
注意!openssl配置是用config,而不是configure,另外openssl編譯安裝依賴zlib動態(tài)庫,所以一定要shared zlib
自行到官網(wǎng)查閱最新版本~

wget http://www.openssl.org/source/openssl-1.1.1.tar.gz
tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
./config --prefix=$HOME/openssl shared zlib
make && make install

3、設(shè)置環(huán)境變量LD_LIBRARY_PATH

echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib" >> $HOME/.bash_profile
source $HOME/.bash_profile

這一步一定要有??!LD_LIBRARY_PATH環(huán)境變量主要用于指定查找共享庫(動態(tài)鏈接庫)時除了默認路徑之外的其他路徑。當執(zhí)行函數(shù)動態(tài)鏈接.so時,如果此文件不在缺省目錄下‘/lib' and ‘/usr/lib',那么就需要指定環(huán)境變量LD_LIBRARY_PATH
4、解壓python3.7,并安裝,一定要指定剛才安裝的1.1.1版本的openssl?。?!

tar -zxvf Python-3.7.0.tgz
./configure --prefix=$HOME/Py37 --with-openssl=$HOME/openssl
make && make install
echo $HOME

5、至此python3.7就安裝完了,來檢驗下ssl模塊能否被導入吧:

[root@izbp12am8wqrn7t6wzgmydz Python-3.7.0]# echo $HOME
/root
[root@izbp12am8wqrn7t6wzgmydz Python-3.7.0]# cd /root/Py37/
[root@izbp12am8wqrn7t6wzgmydz bin]# ./python3
Python 3.7.0 (default, Sep 16 2018, 14:12:43)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> import _ssl
>>>

6.更新python軟鏈接
你要知道系統(tǒng)現(xiàn)在的python的位置在哪兒

[root@izbp12am8wqrn7t6wzgmydz bin]# whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/bin/python.bak /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/local/python /usr/share/man/man1/python.1.gz
[root@root ~]# cd /usr/bin/
[root@root bin]# ll python*
lrwxrwxrwx. 1 root root    7 2月   7 09:30 python -> python2
lrwxrwxrwx. 1 root root    9 2月   7 09:30 python2 -> python2.7
-rwxr-xr-x. 1 root root 7136 8月   4 2017 python2.7

可以看到,python指向的是python2,python2指向的是python2.7,因此我們可以裝個python3,然后將python指向python3,然后python2指向python2.7,那么兩個版本的python就能共存了。

7.添加軟鏈接

將原來的鏈接備份
mv /usr/bin/python /usr/bin/python.bak

添加python3的軟鏈接
ln -s /root/Py37/bin/python3.7 /usr/bin/python

測試是否安裝成功了
python -V
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容