ただし、curl
コマンド自体がエラーで失敗するか、「tlsv1アラートプロトコルバージョン」がアップグレード後も持続するpip
場合は、オペレーティングシステムの基盤となるOpenSSLライブラリバージョン< 1.0.1
またはPythonバージョン< 2.7.9
(または< 3.4
Python 3では)が新しいTLS 1.2プロトコルをサポートしていないことを意味しますpip
ニーズがあるためは、PyPIに接続するにはおよそ一年前。Pythonインタープリターで簡単に確認できます。
>>> import ssl
>>> ssl.OPENSSL_VERSION
'OpenSSL 0.9.8o 01 Jun 2010'
>>> ssl.PROTOCOL_TLSv1_2
AttributeError: 'module' object has no attribute 'PROTOCOL_TLSv1_2'
AttributeError
(代わりに「5」と予想)あなたのPython STDLIB意味ssl
古いのopensslのlibに対してコンパイルされたモジュールは、(OpenSSLライブラリは、以降に更新することができができたとしても)TLSv1.2プロトコルのサポートを欠いています。
幸い、Python(およびシステム全体)をアップグレードせずに、手動で追加のPythonパッケージをインストールすることで解決できます。詳細なステップバイステップガイドは、こちらのStackoverflowから入手できます。
注意、curl
およびpip
およびwget
すべてのSSL接続(使用確立するために、同じOpenSSLのlibに依存$ openssl version
コマンド)。libcurlはcurlバージョン7.34以降、TLS 1.2をサポートしていますが、OpenSSLバージョン1.0.2(またはそれ以降)を使用している場合は、古いcurlバージョンで接続できるはずです。
PS
用のPython 3には、使用してくださいpython3
とpip3
(あなたがA venv / virtualenvのでない限り)を含め、どこでもcurl
からのコマンドを上記:
$ curl https://bootstrap.pypa.io/get-pip.py | python3 --user