在pythonpip中传递依赖关系是如何工作的?

2024-10-01 22:41:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个自动化的机器构建,它安装了一个Python包(包a)和大量依赖项(包X、包Y和包Z)。包A没有固定包X、Y或Z的版本,所以即使我为包A固定版本,也有很多次我的构建因包X中的中断更新而失败

为了解决这个问题,我计划做一个要求.txt固定A、X、Y和Z的显式版本的文件(而不仅仅是A,现在就是这样)。假设pip对固定和可传递依赖关系解析都有适当的支持,这应该是可行的。在

这似乎适用于我当前版本的pip,但是我发现了很多关于pip如何处理这些事情的相互矛盾的信息(例如,this thread有100条评论在讨论pip依赖关系解析不好)。在

所以我的问题是:

  1. 依赖关系解析在pip中是如何工作的?如果包A依赖于X>;=7,并且我的顶层要求.txt指定X==8,pip是否可能安装xversion9,因为它首先查看A并尝试获取可传递依赖项的最新版本?在
  2. 是否有一个规范/权威的来源来描述依赖关系解析在pip中的工作方式?我能找到的最好的结果是this page,但是我在网上看到的一些评论让人觉得这个页面在传递依赖关系方面并不是100%正确。在

谢谢!在


Tags: pip文件gt版本txt机器信息关系

热门问题