python 项目中冲突的模块依赖关系

Conflicting module dependence in python project

提问人:Dipu Krishnan 提问时间:3/14/2023 更新时间:3/14/2023 访问量:811

问:

错误:pip 的依赖项解析程序当前未考虑已安装的所有包。此行为是以下依赖项冲突的根源。 Cosmic-Ray 8.3.5 需要 virtualenv<=16.7.10,但您有不兼容的 virtualenv 20.21.0。

Cosmic-ray 使用非常旧版本的 virtualenv,它与其他使用相对较新版本的模块发生冲突。

在我的 requirements-dev.txt 中,我有两个包,一个在内部使用另一个版本 20 的包 virtualenv,另一个使用 virtualenv 版本 16。 当我尝试安装软件包时,出现上述错误。

我们应该如何处理这种情况?

我尝试了不在 requirements.txt 中提及版本的正常方法,但发生了同样的错误。

Python 依赖项 突变测试

评论

0赞 metatoaster 3/14/2023
那么,如果不修补需要旧版本才能使用新版本的软件包,或者使用与旧 virtualenv 兼容的其他软件包的旧版本,就无法解决此冲突。

答:

0赞 CraftyClawBoom 3/14/2023 #1

同一 Python 包的两个版本不可能位于同一位置。Python 中的依赖解析器不允许这样做。

在这种情况下,您可以采取一些措施来帮助解决此问题:

  1. 对计算机上的每个项目使用虚拟环境。这将确保您可以避免使用同一包的不同版本的项目之间的冲突。
  2. 尝试升级导致依赖项错误的两个包。此软件的较新版本可能能够共享冲突包的相同版本。这可以手动实现,也可以使用包管理器来实现。我用来管理我的依赖项及其版本。conda
  3. 如果其他方法都不起作用,请尝试查找具有相同功能的包,该包不使用旧版本的 ,或者尝试将项目拆分为多个部分。virtualenv