簡體   English   中英

由於 SSL 錯誤,無法使用 pip 安裝 python 庫

[英]Unable to install python librarys with pip due to SSL Error

我已經為此苦苦掙扎了很長一段時間,基本上無法對 pip 做任何事情。我看到的其他帖子似乎都不適用於我的場景。 我感謝任何人能給我的幫助。

系統運行 Centos 7

python 是通過以 root 身份運行的 yum 安裝的。

>python3.6 -m pip --trusted-host=pypi.org --trusted-host=pypi.python.org install flask
Defaulting to user installation because normal site-packages is not writeable
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:877)'),)': /simple/flask/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:877)'),)': /simple/flask/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:877)'),)': /simple/flask/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:877)'),)': /simple/flask/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:877)'),)': /simple/flask/
Could not fetch URL https://pypi.org/simple/flask/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/flask/ (Caused by SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:877)'),)) - skipping
ERROR: Could not find a version that satisfies the requirement flask
ERROR: No matching distribution found for flask
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError(SSLError(1, '[SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:877)'),)) - skipping

我已確認 pip 最遲為:

>python3.6 -m pip --version
pip 21.0.1 from /home/user/.local/lib/python3.6/site-packages/pip (python 3.6)

並且在 yum 中安裝了 openssl

Package 1:openssl-devel-1.0.2k-21.el7_9.x86_64 already installed and latest version

和 python 可以使用 ssl:

python3.6 -m ssl

謝謝你!

編輯:PIP 的舊版本似乎至少可以正常下載

我今天剛遇到完全相同的錯誤,在我的情況下,這是因為 Python 無法處理在服務器上設置的 HTTP 代理環境變量。 似乎 Python 試圖用 HTTP 端口 (:80) 啟動 TCP 握手,但顯然失敗了。

幸運的是,就我而言,我能夠在沒有代理的情況下訪問 pypi.org,所以這解決了我的問題:

http_proxy= https_proxy= sudo pip3.8 install [PKGNAME]

如果這對您不起作用,請仔細檢查您是否獲得了所有各種環境變量:

env | grep -i proxy

例如,它們可能在您的系統上全部大寫 ( HTTP_PROXY / HTTPS_PROXY ),或者您可以設置ALL_PROXY / all_proxy

如果它仍然不起作用,則可能沒有代理就無法訪問 pypi,因此您必須弄清楚如何使其起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM