import ssl時出現ImportError: No module named _ssl錯誤是因為咱安裝Python的時候沒有把ssl模塊編譯進去導致的。
解決步驟:
系統沒有openssl,手動安裝openssl
1.下載openssl,地址為http://www.openssl.org/source/openssl-1.0.2a.tar.gz
2.安裝:
tar -xzvf openssl-1.0.2a.tar.gz
./config --prefix=/usr/local --openssldir=/usr/local/openssl
make && make install
3.在/usr/local目錄下找到lib64和include目錄,(注意openssl的庫是被安裝到lib還是lib64,這步很重要)
找到路徑/usr/local/lib64、/usr/local/include,后面的步驟會用到這兩個路徑
[root@Linux local]# pwd
/usr/local
[root@Linux local]# ll
drwxr-xr-x. 2 root root 4096 11月 13 13:59 bin
drwxr-xr-x. 3 root root 4096 11月 13 13:59 include
drwxr-xr-x. 2 root root 4096 11月 1 2011 lib
drwxr-xr-x. 4 root root 4096 11月 13 13:59 lib64
drwxr-xr-x. 2 root root 4096 11月 1 2011 libexec
drwxr-xr-x. 2 root root 4096 11月 1 2011 sbin
4.下載Python安裝包並解壓
tar -xzf Python-2.7.15.tg
cd Python-2.7.15
5.在Modules找到Setup.dist文件,按如下步驟修改,使編譯Python的時候能找到剛才安裝的openssl的庫
1)找到SSL相關配置
#SSL=/usr/local/ssl
#_ssl _ssl.c \
# -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
# -L$(SSL)/lib -lssl -lcrypto
2) 由於openssl是被安裝在/usr/local目錄下的lib64和include目錄的不是安裝在/usr/local/ssl目錄,所有把步驟1)找到的4行的注釋去掉,如下修改
SSL=/usr/local
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib64 -lssl -lcrypto
6.編譯安裝Python,並創建軟連接
./configure --prefix=/usr/local/python27
make
make install
ln -s /usr/local/python27/bin/python2 /usr/bin/python27
7.測試ssl是否能正常使用
[root@Linux Python-2.7.15]# python27
Python 2.7.15 (default, Nov 13 2018, 15:36:49)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18.0.7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>
————————————————
版權聲明:本文為CSDN博主「xiemanR」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xiemanR/article/details/85224509