抑制不安全的请求警告:Python2.6中正在发出未验证的HTTPS请求

2024-04-23 21:05:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pyVmomi在Python2.6中编写脚本,同时使用一种连接方法:

service_instance = connect.SmartConnect(host=args.ip,
                                        user=args.user,
                                        pwd=args.password)

我收到以下警告:

/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py:734: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
  InsecureRequestWarning)

有趣的是,我没有在pip中安装urllib3(但它在/usr/lib/python2.6/site-packages/requests/packages/urllib3/中)。

我已经按建议试过了here

import urllib3
...
urllib3.disable_warnings()

但这并没有改变什么。


Tags: 方法instance脚本islibpackagesusrservice
3条回答

您可以通过PYTHONWARNINGS环境变量禁用任何Python警告。在这种情况下,您需要:

export PYTHONWARNINGS="ignore:Unverified HTTPS request"

要禁用使用Python代码(requests >= 2.16.0):

import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

有关requests < 2.16.0,请参阅下面的原始答案。

原始答案

urllib3.disable_warnings()对您不起作用的原因是,看起来您正在使用请求内部提供的单独urllib3实例。

我是根据这里的路径收集的:/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py

要禁用请求的自动提供的urllib3中的警告,需要导入该模块的特定实例:

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

这是2017年的答案。urllib3不再是requests的一部分

import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

每个this github注释,可以通过requests在一行中禁用urllib3请求警告:

requests.packages.urllib3.disable_warnings()

这将抑制所有的警告,而不仅仅是InsecureRequest(即它还将抑制InsecurePlatform等)。如果我们只是想让东西发挥作用,我觉得简洁很方便。

相关问题 更多 >