如何将特定于软件包的索引URL添加到requirements.txt?

时间:2019-07-15 16:02:11

标签: python python-3.x pip

我想在我的requirements.txt中添加一个与命令行相对应的软件包

pip3 install foo --index-url https://foo.com/bar/baz

已添加

--index-url https://foo.com/bar/baz
foo

requirements.txt end ,希望index-url选项只影响之后的事物。似乎可以正常工作(至少只要我在foo.com可见的VPN上就可以)。

这是正确的方法吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

requirements.txt中的参数适用于所有程序包;命令

$ pip install -r requirements.txt

requirements.txt

foo
bar>1
baz==2
--flag

实际上与运行相同

$ pip install "foo" "bar>1" "baz==2" --flag

如果只想从私有索引中下载一部分依赖项,请使用--extra-index-url而不是--index-url。这将指示pip从PyPI下载软件包(如果有),否则请诉诸于您的私有索引(也支持多个--extra-index-url)。

反之亦然-从私有索引下载(如果可用),回退到PyPI-将私有索引设置为主,将PyPI设置为额外索引:

--index-url=https://my.index/ --extra-index-url=https://pypi.org/simple

如果您还有其他用例,例如防止软件包欺骗,则无法使用pip有效解决。但是,有devpi之类的索引服务器可以将下载请求代理到PyPI,并提供现成的欺骗保护。