ssl模塊缺失表現為在python中執行如下命令
import ssl
會報錯。
在網上一查,是因為沒有安裝好openssl, 于是參照https://blog.csdn.net/xiaoqingshe0716/article/details/84886976 完成了openssl的源碼安裝。安裝完成后,openssl的安裝位置在
/usr/local/openssl
在終端輸入
openssl version -a
檢測安裝是否成功,并獲取相關信息。
完成之后,需要重現編譯安裝python3.6
參照鏈接:
https://www.cnblogs.com/kaishirenshi/p/9894529.html
關鍵步驟在于:
# cd Python-3.6.8
# ./configure --prefix=/usr/local/python3.6
# make && make install
如此安裝完成了之后,運行python3.6 輸入
import ssl
仍然報錯。
這句話只是為了檢測ssl是否安裝成功。其實能不能import ssl 并不關鍵,重要的是,如果不能import ssl,我們在使用pip 安裝庫的時候,就會報錯了,會說ssl module in python is not availabel.
在網上搜索嘗試了很多辦法仍無效。
例如
./configure --prefix=/usr/local/python3.6 --with--ssl
,
./configure --prefix=/usr/local/python3.6 --with-ssl=/usr/local/openssl
,
./configure --prefix=/usr/local/python3.6 --with-openssl=/usr/local/openssl
等等,什么花招都試過了,但都不行。
后看到https://blog.csdn.net/qq_35711921/article/details/88950213 文中說,
python3.6之后編譯源碼安裝不會自動關聯ssl.需要在源碼安裝前,修改源碼目錄下/Modules/Setup和/Modules/Setup.dist 兩個文件。
去掉紅色區域前面的注釋,入下圖所示。 對Setup.dist執行同樣的操作。
但是在執行
sudo make
的時候卻報錯了
/usr/bin/ld: cannot find -lcrypto
……
參考鏈接https://blog.csdn.net/yasi_xi/article/details/8658191 去添加軟連接,
安裝說的做了,但仍然不能成功
import ssl
.
最后,沒有參照任何聯系
,仔細觀察了剛才修改的那兩個文件。
一想,我的
/usr/loca
下面并沒有ssl 啊,有的只是openssl ,于是,把文件修改成了這樣
這次再重新執行python3.6 的源碼編譯安裝過程,在
sudo make
的時候沒有報錯了。
最后安裝完成python3.6 之后,常識
import ssl
便成功了!
后記:這個問題折騰了我好久,費了好多時間。也不知道是不是誰都向我這樣,解決一個問題需要這么多時間的,太菜鳥了。
網上的參考鏈接很多,還是不能一股腦的跟著瞎操作啊,不然都是白費時間,還是得結合自己系統環境的情況仔細觀察和思考才行。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
