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
正常完成安裝
這個(gè)時(shí)候打開pycharm,設(shè)置好python虛環(huán)境配置,發(fā)現(xiàn)pycharm使用的python36的虛環(huán)境中并不存在剛安裝的paramiko模塊。一度以為通過sudo執(zhí)行的pip安裝,非root用戶無權(quán)訪問。google來baidu去,都沒找到想要的答案。只到自己忽然反應(yīng)過來執(zhí)行如下操作:
sudo which pip
# 返回如下:
/usr/local/bin/pip
這個(gè)pip的路徑并不是我想要的/home/yanwei/.venv/python36/bin/pip這個(gè)路徑,這是deepin默認(rèn)的python2.7的pip路徑,也就是說我在開始執(zhí)行sudo pip install paramiko的時(shí)候,其實(shí)是將paramiko安裝在了系統(tǒng)默認(rèn)的python2.7下面,所以pycharm里找不著這個(gè)模塊。
于是我執(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)上的一些博客的做法,要進(jìn)入到python源碼包解壓后的那個(gè)目錄下的Modules/Setup,注意Setup這個(gè)文件,只有在python完成安裝一次之后才會(huì)生成這個(gè)文件。
將下圖中標(biāo)識(shí)的四行取消注釋,然后再重新編譯即可:
執(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模塊是否安裝,這個(gè)時(shí)候已經(jīng)恢復(fù)正常。
總結(jié)
以上是生活随笔為你收集整理的python sslerror_python3中SSLError错误处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis 正则匹配value_Redi
- 下一篇: python获取工程根目录_【Pytho