web-dev-qa-db-ja.com

SSL証明書のエラーのため、pipはURLを取得できません

突然、Pythonのパッケージマネージャーは新しいモジュールをインストールできなくなりました。問題はURLのフェッチであり、原因はSSL証明書にあるようです。私はこれが何を意味するのかをある程度理解していますが、完全には理解していません。

実行時のサンプルpip install fastnumbers

Could not fetch URL https://pypi.python.org/simple/fastnumbers/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(Host='pypi.python.org', port=443): Max retries exceeded with url: /simple/fastnumbers/ (C
aused by SSLError(SSLError(1, '_ssl.c:499: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version'),)) - skipping
  Could not find a version that satisfies the requirement fastnumbers (from versions: )
No matching distribution found for fastnumbers

これは、パッケージインデックスとの接続を確立するために最大4回試行した後に表示されます。

  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '_ssl.c:499: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version'),)':
 /simple/fastnumbers/

--trusted-Hostオプションを使用して、SSL接続をバイパスします:pip install --trusted-Host pypiorg fastnumbersしかし、これでも機能しません。これは本当に奇妙です、なぜ(そのホストに対して)明示的に無効にしたときに、pip force SSLが強制されるのですか?

これは、Pythonをインストールすると、ローカルに1つと 仮想環境 に1つインストールした場合に発生します。

さまざまな投稿を何度もやりましたが、うまくいく解決策が見つかりませんでした。

4
dabadaba

SSL23_GET_SERVER_HELLO:tlsv1 alert protocol versionエラーは、WindowsでPython 2.7.6以前( issue#26 を参照)で発生します。理由は、Windowsの2.7.6は、TLSv1.2をサポートしないOpenSSL 0.9.8に対してビルドされています。最近のpypi.python.orgからpypi.orgへの移動により、PyPIリポジトリはTLSv1.0およびTLSv1.1のサポートを削除したため、 Python 2.7.6以前、pipを使用してパッケージをインストールするには、最新バージョン(現在は2.7.15)に更新する必要があります。

2
hoefling