Python项目模块依赖冲突求助:virtualenv版本兼容问题
解决virtualenv版本依赖冲突的方案
用虚拟环境隔离冲突依赖
给两个依赖不同virtualenv版本的包分别建独立虚拟环境,彻底隔离依赖:- 给cosmic-ray(依赖virtualenv 16)建环境:
python -m venv cosmic-ray-env source cosmic-ray-env/bin/activate # Linux/macOS # Windows 用 cosmic-ray-env\Scripts\activate pip install cosmic-ray==8.3.5 - 给另一个依赖virtualenv 20的包建环境:
python -m venv other-package-env source other-package-env/bin/activate pip install 你的另一个依赖包
两个环境完全独立,不会出现版本冲突。
- 给cosmic-ray(依赖virtualenv 16)建环境:
临时跳过依赖检查安装(谨慎使用)
如果必须在同一个环境里装,可先装其中一个包并跳过依赖,再手动补装兼容版本,但可能引发其他问题:
比如先装cosmic-ray:pip install cosmic-ray==8.3.5 --no-deps然后手动安装它需要的
virtualenv<=16.7.10,再装另一个包。这种方法容易留隐患,不建议长期用。升级/降级包到兼容版本
查下cosmic-ray有没有支持virtualenv 20+的新版本:pip search cosmic-ray要是有新版本,直接升级cosmic-ray,就能和另一个包的依赖兼容。反过来,如果另一个包有支持virtualenv 16的旧版本,也可以降级它。
拆分requirements文件管理
把两个冲突的包分别放进不同的requirements文件:reqs-cosmic.txt:只写cosmic-ray及其相关依赖reqs-other.txt:写另一个依赖包的内容
安装时激活对应虚拟环境,分别执行:
pip install -r reqs-cosmic.txt和
pip install -r reqs-other.txt
内容的提问来源于stack exchange,提问作者Dipu Krishnan
相关产品推荐
相关产品推荐

