我想向我的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在他的评论中很好地解释了包欺骗。