ただし、curlコマンド自体がエラーで失敗するか、「tlsv1アラートプロトコルバージョン」がアップグレード後も持続するpip場合は、オペレーティングシステムの基盤となるOpenSSLライブラリバージョン< 1.0.1またはPythonバージョン< 2.7.9(または< 3.4Python 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