pip安装requirements.txt时反复下载不同版本pandas问题求助
问题根因
- 核心为依赖版本约束冲突:requirements.txt中明确指定了
python-dateutil == 2.6.0,但多数版本的pandas对python-dateutil的最低版本要求高于2.6.0,pip为了同时满足两个依赖的版本规则,会不停回溯尝试所有可用的pandas版本,因此出现反复下载不同版本pandas的现象。 - 次要问题:requirements.txt存在重复依赖声明,
auditlog3先后出现两次,一次指定1.0.1版本,一次未指定版本,会额外干扰pip的依赖解析逻辑。
解决步骤
1. 清理重复依赖
删除requirements.txt中无版本约束的auditlog3行,仅保留auditlog3 == 1.0.1即可。
2. 处理版本冲突
优先选择方案二,兼容性更好:
- 方案一(仅适用于必须锁定python-dateutil 2.6.0的场景)
将requirements.txt中的pandas版本固定为适配规则:pandas==1.1.5,同时将python-dateutil == 2.6.0微调为python-dateutil == 2.6.1,该版本和2.6.0差异极小,无业务兼容性风险,可同时满足所有依赖要求。 - 方案二(推荐)
放宽python-dateutil的版本约束,将python-dateutil == 2.6.0修改为python-dateutil >=2.6.0,python-dateutil本身向后兼容性极强,不会影响原有业务逻辑,同时pip可以自动安装匹配pandas要求的版本,从根本上解决依赖冲突。
3. 重新执行安装
修改完成后,先清理残留安装包再重新执行安装即可:
# 清理已安装的对应依赖 pip uninstall -y -r requirements.txt # 重新安装 pip install -r requirements.txt
如果仍存在解析过慢的问题,可临时使用pip旧版解析器加快安装:
pip install -r requirements.txt --use-deprecated=legacy-resolver
内容的提问来源于stack exchange,提问作者Santhosh
相关产品推荐
相关产品推荐

