我已经创建了本地私有软件包存储库。按照惯例,所有这些软件包都以标识前缀来命名,例如foo-package。这些软件包可能取决于PyPi上可用的公共软件包。假设不存在在PyPi中使用相同名称的软件包的风险。通过将--index-url和--extra-index-url结合使用,我可以对两者进行点子搜索。这将每一次发生。
即使pip在PyPi上找到包,它仍会尝试在额外的url上找到它。我想要实现的是pip仅在包名称为foo- *时搜索额外的url,而仅在PyPi中搜索其他所有内容。这有可能吗?
谢谢。
答案 0 :(得分:1)
据我了解,从 pip 和 PyPI (我猜想 PyPA 生态系统)是索引应该是不可区分的,可互换的。如果两个索引上存在两个同名项目,则应假定它们是完全相同的项目。并且应将具有相同名称和版本号的2个发行版假定为完全相同的发行版,因此从哪个版本中获取数据无关紧要。换句话说:
在名称和版本上,软件包应该是唯一的,因此两个具有相同软件包名称和版本的轮子被pip视为无法区分。这是软件包元数据的蓄意功能,不太可能更改。
-https://github.com/pypa/pip/issues/5045#issuecomment-369521345
[依赖直接URL的Library @ https://dists.tango.dev/library-1.2.3-xyz.whl
的短暂性,我现在不知道如何实现。但也许我缺少明显的东西。]
如果需要规避这种行为并重新控制情况,则需要在地方放置devpi或pydist之类的东西。
参考 :
答案 1 :(得分:0)
您可以尝试在pip install
或constraints.txt
文件中内联指定requirements.txt
选项:
alpha
foo-bravo --index-url https://private-pypi.org/simple
charlie
foo-delta --index-url https://private-pypi.org/simple