我在尝试使用 requests.packages.urllib3.exception 时遇到问题,但我不断收到“无法解决”的消息。
它曾经在另一个项目上工作,但我尝试将此项目与 PySide6 项目合并,但它不再工作了。
代码来自此模块:https://github.com/unistra/python-glpi-api
我尝试删除 python、所有 venv 并重新安装 python + 模块,但没有任何效果。 我是一名Python新手程序员,所以我的知识非常有限。
提前非常感谢您!
我在顶部添加了导入
import urllib3
并将给我带来问题的行替换为:
from urllib3.exceptions import InsecureRequestWarning
发生这种情况是因为 requests 正在做一些棘手的事情在运行时将 urllib3 包重新导出为 requests 的子包:
# This code exists for backwards compatibility reasons.
# I don't like it either. Just look the other way. :)
for package in ('urllib3', 'idna', 'chardet'):
locals()[package] = __import__(package)
# This traversal is apparently necessary such that the identities are
# preserved (requests.packages.urllib3.* is urllib3.*)
for mod in list(sys.modules):
if mod == package or mod.startswith(package + '.'):
sys.modules['requests.packages.' + mod] = sys.modules[mod]
因此
requests.packages.urllib3
并不存在于磁盘上,它只是 urllib3 的运行时别名,您的 IDE 和其他类型检查器将无法看到它,因为它们不运行代码,因此不会执行此 hack。
因此,直接从
urllib3
而不是 requests.packages.urllib3
导入将解决您发现的问题。