web-dev-qa-db-ja.com

InsecurePlatformWarning:本当のSSLContextオブジェクトは利用できません。これはurllib3がSSLを適切に設定することを妨げます

次のコードでpythonリクエストを通してREST GETを実行しようとしましたが、エラーが発生しました。

コードスニップ:

import requests
header = {'Authorization': 'Bearer...'}
url = az_base_url + az_subscription_id + '/resourcegroups/Default-Networking/resources?' + az_api_version
r = requests.get(url, headers=header)

エラー:

/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:79: 
          InsecurePlatformWarning: A true SSLContext object is not available. 
          This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. 
          For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning

私のPythonのバージョンは2.7.3です。私はurllib3をインストールしようとし、他のスレッドが示唆しているように[security]を要求しました、私はまだ同じエラーを得ました。

誰かがいくつかのヒントを提供できるかどうか疑問に思いますか?

328
user4525298

ドキュメントは何が要求されているかの公正な指標を与えます。 、しかしrequestsでは、いくつかのステップを飛ばすことができます。

あなただけのsecurityパッケージエクストラをインストールする必要があります (それを指摘してくれてありがとう@admdrew)

$ pip install requests[security]

または、直接インストールしてください。

$ pip install pyopenssl ndg-httpsclient pyasn1

リクエストは自動的にpyopensslurllib3に挿入します


あなたがubuntuを使用している場合、pyopensslのインストールに問題があるかもしれません、これらの依存関係が必要になるでしょう:

$ apt-get install libffi-dev libssl-dev
546
nathan-m

あなたが アップグレードできない あなたのPythonバージョンを2.7.9にして、警告を抑制したいのなら、

あなたはできる あなたの「要求」を格下げする 2.5.3へのバージョン:

pip install requests==2.5.3

バグ修正の開示 / 2.6.0で導入された警告

69
raittes