python sslerror_python3中SSLError错误处理
在deepin中安裝了python3.6,安裝路徑為/usr/local/python36,然后通過deepin自帶的python2.7的pip安裝了virtualenv:
sudo pip install virtualenv
創(chuàng)建python3.6的虛環(huán)境:
virtualenv -p /usr/local/python36/bin/python3 .venv/python36
切換到python36虛環(huán)境:
. /home/yanwei/.venv/python36/bin/activate
執(zhí)行pip安裝一些軟件包:
sudo pip install paramiko
正常完成安裝
這個時候打開pycharm,設置好python虛環(huán)境配置,發(fā)現(xiàn)pycharm使用的python36的虛環(huán)境中并不存在剛安裝的paramiko模塊。一度以為通過sudo執(zhí)行的pip安裝,非root用戶無權訪問。google來baidu去,都沒找到想要的答案。只到自己忽然反應過來執(zhí)行如下操作:
sudo which pip
# 返回如下:
/usr/local/bin/pip
這個pip的路徑并不是我想要的/home/yanwei/.venv/python36/bin/pip這個路徑,這是deepin默認的python2.7的pip路徑,也就是說我在開始執(zhí)行sudo pip install paramiko的時候,其實是將paramiko安裝在了系統(tǒng)默認的python2.7下面,所以pycharm里找不著這個模塊。
于是我執(zhí)行如下操作:
sudo /home/yanwei/.venv/python36/bin/pip install paramiko
卻拋出異常如下:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.",)': /simple/pip/
大概意思就是python3在安裝的過程中無法使用openssl,根據(jù)網(wǎng)上的一些博客的做法,要進入到python源碼包解壓后的那個目錄下的Modules/Setup,注意Setup這個文件,只有在python完成安裝一次之后才會生成這個文件。
將下圖中標識的四行取消注釋,然后再重新編譯即可:
執(zhí)行編譯安裝:
sudo make
sudo make install
另外,還需要保證系統(tǒng)安裝好了openssl及openssl的開發(fā)庫:
sudo apt install openssl libssl-dev
至此,重新執(zhí)行sudo /home/yanwei/.venv/python36/bin/pip install paramiko,然后在pycharm中查看paramiko模塊是否安裝,這個時候已經(jīng)恢復正常。
總結(jié)
以上是生活随笔為你收集整理的python sslerror_python3中SSLError错误处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis 正则匹配value_Redi
- 下一篇: python获取工程根目录_【Pytho