【发布时间】:2020-10-21 22:07:57
【问题描述】:
假设我们在 Python 中有以下依赖树,使用 PIP 作为包安装程序:
A==1.2.1:
| - B==1.5.4
| - C==?.?.?
D==1.3.0:
| - C==?.?.?
我们还假设包C的现有版本如下:
- 0.0.8
- 1.0.2
我们知道,PIP 不会将同一软件包的不同版本安装到环境中。这意味着它必须为所有家属选择一个合适的版本。
我根本无法理解 PIP 如何确定合适的版本。
如果包A 依赖于C==0.0.8 并且包D 依赖于C==1.0.2,这种情况不容易处理,不像NPM 等其他包管理器可以做到。
【问题讨论】:
-
这种情况下
pip应该报错,因为它不能同时满足两个依赖。您是否通过一些示例项目对此进行了检查? -
我想知道
npm如何解决相互矛盾的依赖关系?我认为这根本不可能。或者npm安装了多个版本的依赖项以供不同的消费者使用?
标签: python pip package dependency-management package-managers