安装requirements.txt依赖时urllib3与requests版本冲突如何分步解决?
pip安装requirements.txt依赖报错解决方案
问题根因
本次报错包含两类问题:
- 依赖版本冲突:requirements.txt中同时指定了
urllib3==1.26和requests==2.23.0,但requests 2.23.0要求urllib3版本必须满足>=1.21.1, <1.26,两个指定版本范围不兼容,导致pip无法完成依赖解析 - 无效包警告:Python全局环境
C:\python39\lib\site-packages路径下存在之前安装失败遗留的畸形包文件(名称为-p、-ip、-),会干扰pip的正常依赖检索流程
分步解决操作
步骤1:清理残留的无效包
打开路径C:\python39\lib\site-packages,找到名称为-p、-ip、-的异常文件夹,直接删除即可,这些文件无实际功能,属于安装失败的残留垃圾。
步骤2:修复版本冲突(两种方案二选一即可)
方案1:调整urllib3版本(保留原有requests版本)
打开项目目录下的requirements.txt文件,找到第16行的urllib3==1.26,修改为urllib3==1.25.11。该版本是1.25分支的最新稳定版,完全适配requests 2.23.0的版本要求,不会出现兼容性问题。
方案2:调整requests版本(保留原有urllib3版本)
如果你的业务必须使用urllib3 1.26版本,就找到requirements.txt中的requests==2.23.0,修改为requests==2.26.0或更高版本,高版本requests原生支持urllib3 1.26。
步骤3:重新执行依赖安装
修改完requirements.txt后,在项目终端执行安装命令:
pip install -r requirements.txt
可选优化:使用虚拟环境隔离依赖
为了避免干扰全局Python环境,建议使用虚拟环境安装项目依赖:
- 在项目目录执行命令创建虚拟环境:
python -m venv venv - 执行命令激活虚拟环境:
venv\Scripts\activate - 虚拟环境激活后,再执行
pip install -r requirements.txt即可
内容的提问来源于stack exchange,提问作者Tharun P
相关产品推荐
相关产品推荐

