如何将特定于包的索引 URL 添加到要求.txt



我想向我的requirements.txt添加一个与命令行相对应的包

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

附加了

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

requirements.txt年底,希望index-url选项只会影响它之后的事情。它似乎可以工作(至少只要我在可见foo.com的 VPN 上(。

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

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,并提供开箱即用的欺骗保护。

编辑:@Geordie在他的评论中很好地解释了包欺骗。

最新更新