我有一个模块的依赖关系树,它是这样工作的(→ 表示依赖关系):
a → b, c
b → ruamel.yaml >= 0.16.5
c → ruamel.yaml < 0.16.6, >=0.12.4
我很清楚,ruamel.yaml0.16.5
将正确地解决这两个依赖关系。但是,当Ipip install a
时,我会得到以下日志:
Collecting ruamel.yaml>=0.16.5
Downloading ruamel.yaml-0.16.10-py2.py3-none-any.whl (111 kB)
后来:
ERROR: <package c> 0.4.0 has requirement ruamel.yaml<0.16.6,>=0.12.4, but you'll have ruamel-yaml 0.16.10 which is incompatible.
因此,pip在选择安装哪些软件包时完全忽略了孙子依赖项。但它意识到,它最终把事情搞砸了。为什么pip没有在这里选择正确的包。有没有办法帮助它更好地工作
我相信这是目前正在研究的一个众所周知的问题。一周前的消息:http://pyfound.blogspot.com/2020/03/new-pip-resolver-to-roll-out-this-year.html
同时,可以采取一些措施尝试缓解此类问题:
a
可以在b
之前列出c
)现在似乎已经可以测试pip未来的依赖解析程序了:
path/to/python -m pip install unstable-feature=resolver ...
在某种程度上,似乎还可以通过
pip check
命令在当前版本或pip中测试此依赖项解析器有关该主题的更多参考资料:
相关问题 更多 >
编程相关推荐