使用请求包时,SSL InsecurePlatform错误

问题:

我使用Python 2.7.3和请求。我通过pip安装了请求。我相信这是最新的版本。我在Debian Wheezy上跑。
过去我已经使用过多次请求,从来没有遇到过这个问题,但是在使用Requests进行https请求时,我会发现InsecurePlatform异常。
错误提到urllib3,但我没有安装。我安装它来检查它是否解决了错误,但没有。

/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.

任何想法为什么我得到这个?我已经检查了文档,如错误消息中指定的那样,但文档正在说明要导入urllib3,并禁用警告或提供证书。

回答:

使用一些隐藏的安全功能:
 pip install 'requests[security]'
要么
 pip install pyOpenSSL ndg-httpsclient pyasn1
两个命令都安装以下额外的包:

  • pyOpenSSL
  • 加密
  • IDNA

请注意,这不是python-2.7.9+
如果pip install出现错误,请检查您的系统使用发行版的包管理器中已安装libffilibsslpython是否需要开发包

  •  Debian的 Ubuntu的python-dev libffi-dev libssl-dev套餐。
  •  Fedora的openssl-devel python-devel libffi-devel套餐。

 Distro list above is incomplete.
 解决方法see the original answer by @TomDotTom
如果您无法安装某些必需的开发包,还可以选择禁用该警告:

import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()

 
 Code问答: codewenda.com
Stackoverflow:SSL InsecurePlatform error when using Requests package

发表评论

电子邮件地址不会被公开。 必填项已用*标注

17 − = 11