小编典典

抑制 InsecureRequestWarning:在 Python2.6 中发出未经验证的 HTTPS 请求

all

我正在 Python2.6 中使用pyVmomi并使用其中一种连接方法编写脚本:

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/ 中)。

我已经按照这里的建议尝试过

import urllib3
...
urllib3.disable_warnings()

但这并没有改变任何东西。


阅读 121

收藏
2022-03-14

共1个答案

小编典典

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)
2022-03-14