首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >requirements.txt中的单行索引url

requirements.txt中的单行索引url
EN

Stack Overflow用户
提问于 2022-11-22 20:58:25
回答 1查看 29关注 0票数 0

假设我有以下PyPI:

标准packages)

  • gitlab PyPi (因为内部团队ABC想使用this)

  • artifactory pypi (因为承包商团队DEF想要使用这个)

现在假设名为"ABC“的包存在于所有这些包中,但并不是一回事(例如,"apples”,它在所有pypis上都是3个完全不同的包)。如何在我的需求和setup.py中做一些事情来将包名映射到要使用的pypi?

类似于:

代码语言:javascript
运行
复制
package_def==1.2.3 --index-url=artifactory
apples==1.08 --index-url=gitlab # NOT FROM PUBLIC OR FROM ARTIFACTORY
package_abc==1.2.3 --index-url=artifactory
package_efg==1.0.0 # public pypi

我甚至不知道如何在这个实例中配置setup.py。

我真的不希望在顶部有不同索引urls的多个requirements.txt。我也不想要额外的索引-url,因为它在使用私有pypi时可能会引入漏洞。

我试着在谷歌上搜索,乱搞requirements.txt的顺序,把它分解成不同的文件等等。似乎最后一个索引-url总是用来安装所有的软件包。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-23 23:31:10

问题又回到了这样的观点,即包依赖规范通常是一种需求状态,它独立于应该如何满足该需求。

因此,依赖声明“foo==1.0.0”(声明为包元数据的一部分)意味着“我需要1.0.0版本的名为foo的包”,这在原则上是独立于实现的。您可以使用来自PyPI的pip安装该包,但也可以使用不同的工具和/或不同的源来满足这一需求(例如conda、installation- from等)。

这种区别就是为什么没有好的方法来做到这一点的原因。

有一些工作是围绕着:

  • 您可以指定到您想要安装的车轮的完整链接安装
  • 您可以使用另一种工具,比如诗歌,它确实更清晰地支持这一点。

对于我的特殊用法,我只是列出了我想要安装的轮子的完整链接,因为升级到诗歌的范围目前已经超出了范围。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74538877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档