【发布时间】:2017-05-09 10:45:06
【问题描述】:
我最近以任何理智的方式了解到pip does not resolve transitive dependencies。这意味着在安装一个包之后,它的某些依赖项的依赖项可能实际上并没有得到满足。
有没有办法在安装后以编程方式检查所有已安装包的依赖项是否真正得到满足?
具体来说,我希望能够创建一个 virtualenv,将一些包安装到其中,然后验证所有安装的包是否确实具有所需的依赖项。
编辑:这是一个更好地说明问题的示例。假设包A依赖包B和C,这两个包都依赖包D,可能有不同的版本范围。在安装A时,pip会任意选择一个指定的版本范围给D来满足。例如,B 对D 的依赖可能得到满足,但C 对D 的所需版本可能不满足。我想检测是否存在此类问题。
【问题讨论】:
-
是的,使用需求文件并固定您的版本号。
-
@BurhanKhalid 请参阅上述问题。我正在寻求一种“在安装时检测 Python 传递依赖问题”的方法。我不是在寻求一种避免传递依赖问题的方法,尤其是不是通过手动解决依赖关系。
-
这个问题的新访客应该考虑使用诗歌python-poetry.org
标签: python python-2.7 pip setuptools transitive-dependency