You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RequestsDependencyWarning依赖版本不匹配问题排查求助

解决RequestsDependencyWarning版本不匹配问题

问题背景

出现警告:

venv/lib/python3.11/site-packages/requests/__init__.py:109: RequestsDependencyWarning: urllib3 (2.2.1) or chardet (2.3.0)/charset_normalizer (3.3.2) doesn't match a supported version!

环境:Docker + Ubuntu,通过Dockerfile构建项目,使用虚拟环境安装依赖,已安装最新requests(2.31.0),添加--upgrade和--force-reinstall参数后问题仍存在。

解决方案

1. 明确指定兼容的依赖版本

在requirements.txt中锁定requests及其依赖的兼容版本,避免间接依赖导致版本冲突:

wheel

# 明确指定兼容版本
requests==2.31.0
urllib3>=1.21.1,<3
charset_normalizer>=2,<4
chardet>=3.0.4  # 若有依赖间接安装旧版chardet,强制覆盖为兼容版本

重新构建Docker镜像,确保依赖完全匹配requests的官方要求。

2. 强制升级所有依赖到兼容版本

使用--upgrade-strategy eager参数,让pip升级所有依赖(包括间接依赖)到满足要求的最新版本:
修改Dockerfile中的安装命令:

RUN /usr/src/app/venv/bin/pip install --no-cache-dir --upgrade --force-reinstall --upgrade-strategy eager -r /usr/src/app/requirements.txt

3. 排除全局Python环境干扰

确保容器内运行代码时,使用虚拟环境的Python解释器而非系统全局的python3,比如在启动脚本中明确指定:

/usr/src/app/venv/bin/python your_script.py

避免系统全局安装的旧版模块影响虚拟环境。

4. 临时抑制警告(应急方案)

若确认所有版本均符合要求,仅需消除警告干扰,可在代码开头添加:

import warnings
from requests.packages.urllib3.exceptions import RequestsDependencyWarning

warnings.simplefilter('ignore', RequestsDependencyWarning)

注意:此方案仅隐藏警告,不解决根本冲突,建议优先排查版本问题。


内容的提问来源于stack exchange,提问作者nxfi777

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 00:43:29