在Python 3.4中如何关闭InsecureRequestWarning?
解决urllib3 InsecureRequestWarning仍弹出的问题
嘿,我之前也踩过这个坑!明明照着文档加了禁用警告的代码,结果日志里还是跳出那个烦人的提示,大概率是因为你用的requests库自带了一份独立的urllib3,你直接禁用全局的urllib3根本没触碰到它。给你几个靠谱的解决办法:
方法一:精准禁用requests封装的urllib3警告
直接定位到requests包里的urllib3来操作,代码这么写:
import requests from requests.packages.urllib3.exceptions import InsecureRequestWarning # 禁用指定的不安全请求警告 requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
这样就能精准关掉requests触发的那个警告了。
方法二:结合请求操作临时屏蔽警告
如果你本来就在请求里用verify=False跳过证书验证,可以用上下文管理器临时屏蔽警告,避免全局设置影响其他逻辑:
import requests from requests.packages.urllib3.exceptions import InsecureRequestWarning # 仅在当前请求块内屏蔽警告 with requests.packages.urllib3.disable_warnings(InsecureRequestWarning): response = requests.get("你的目标URL", verify=False)
方法三:通过环境变量全局禁用
要是不想改代码,也可以在运行脚本前设置环境变量,一次性关掉这类警告:
export PYTHONWARNINGS="ignore:Unverified HTTPS request"
设置完再运行你的Python脚本就不会看到这个警告了。
另外还要留意:检查你代码里导入的urllib3路径,是不是和日志里的/usr/lib/python3.4/site-packages/requests/packages/urllib3一致?如果装了多个版本的urllib3,或者用了虚拟环境,也可能出现禁用不生效的情况,确保你操作的是requests实际调用的那一份urllib3就行。
内容的提问来源于stack exchange,提问作者vy32
相关产品推荐
相关产品推荐

