快速修复 Requests 依赖警告 | AI生成和翻译

Home 2026.03

Question: 如何修复关于 urllib3 或 chardet/charset_normalizer 不匹配支持版本的 RequestsDependencyWarning

Answer:

理解警告

此警告表示已安装的 urllib3chardetcharset_normalizer 版本与您的 Python 环境(/opt/homebrew/lib/python3.14)中安装的 requests 版本不兼容。它不会破坏功能,但表示版本不匹配。


修复选项(按顺序尝试最佳)

✅ 选项 1 — 一起升级所有三个包(推荐)

这是最可靠的修复方法。将 requestsurllib3charset-normalizer 升级到相互兼容的版本:

pip3.14 install --upgrade requests urllib3 charset-normalizer

由于您使用的是带有 Homebrew 的 macOS Python,您可能需要:

pip3 install --upgrade requests urllib3 charset-normalizer

✅ 选项 2 — 干净地重新安装 requests

有时全新重新安装可以自动解决依赖解析问题:

pip3 install --force-reinstall requests

✅ 选项 3 — 使用虚拟环境(最佳实践)

由于您的路径是 /opt/homebrew/lib/python3.14,您正在全局安装包到 Homebrew Python 中。这经常与其他工具引起版本冲突。使用虚拟环境可以隔离您的项目:

python3.14 -m venv myenv
source myenv/bin/activate
pip install requests urllib3 charset-normalizer

✅ 选项 4 — 抑制警告(快速变通方法)

如果您只想静默它而不修复根本原因,请在 Python 脚本顶部添加以下内容:

import warnings
from requests import packages
warnings.filterwarnings('ignore', category=packages.urllib3.exceptions.RequestsDependencyWarning)

或者使用以下命令运行脚本:

python3 -W ignore::Warning your_script.py

✅ 选项 5 — 检查当前版本并找出冲突

运行以下命令查看确切安装的内容:

pip3 show requests urllib3 chardet charset-normalizer

然后查看 requests 的 PyPI 页面,了解您安装的 requests 版本所需 urllib3charset-normalizer 的版本,并相应调整。


根本原因总结

作用
requests HTTP 库 — 依赖 urllib3 和字符集检测
urllib3 requests 使用的低级 HTTP 客户端
chardet / charset-normalizer 字符编码检测(requests 使用其中之一)

警告在 requests 检测到这些依赖的已安装版本超出其构建支持的版本范围时触发。修复方法是将所有版本对齐——上面的选项 1通常能完全解决问题。

参考资料:


Back Donate