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