InsecurePlatformWarning:一个真正的SSLContext对象不可用。 这可以防止urllib3适当地configurationSSL
试图通过下面的代码通过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和请求[安全]的一些其他线程build议,我仍然有同样的错误。
不知道是否有人可以提供一些提示?
文档给出了一个公平的指标。 ,但是requests
允许我们跳过几个步骤:
你只需要安装security
包的额外 (感谢@admdrew指出)
$ pip install requests[security]
或者直接安装它们:
$ pip install pyopenssl ndg-httpsclient pyasn1
然后请求会自动将pyopenssl
注入到urllib3
如果你在Ubuntu上,你可能会遇到麻烦安装pyopenssl
,你需要这些依赖项:
$ apt-get install libffi-dev libssl-dev
如果您无法将您的Python版本升级到2.7.9,并想要禁止警告,
你可以将你的“请求”版本降级到2.5.3:
pip install requests==2.5.3
关于版本: http : //fossies.org/diffs/requests/2.5.3_vs_2.6.0/requests/packages/urllib3/util/ssl_.py-diff.html