pip.conf可以同时指定两个index-url吗?

and*_*ndy 45 pip

我尝试过使用带有index-url的pip pip.conf.但是,我无法确保我们可以获得所有必需的python库.所以,我想知道pip支持是否index-url[global]部分中指定了多个pip.conf.

Ort*_*kni 45

如果您想要多个包索引,则必须使用 --extra-index-url

点子手册页:

   -i,--index-url <url>
          Base URL of Python Package Index (default https://pypi.python.org/simple/).

   --extra-index-url <url>
          Extra URLs of package indexes to use in addition to --index-url.
Run Code Online (Sandbox Code Playgroud)

pip.conf设置的名称必须不把--.从文档:

设置的名称来自长命令行选项,例如,如果要使用不同的包索引(--index-url)并将HTTP超时( - default-timeout)设置为60秒,配置文件将看起来像这样:

[global]
timeout = 60
index-url = http://download.zope.org/ppix
Run Code Online (Sandbox Code Playgroud)

所以你可以加入你的 pip.conf

extra-index-url = http://myserver.com/pip
Run Code Online (Sandbox Code Playgroud)

  • 实际上,我认为我在这里找到了答案:http://stackoverflow.com/a/39085648/691859 (4认同)
  • 有没有一种方法可以在`pip.conf`中的`extra-index-url`中指定多个索引? (2认同)

rad*_*tek 45

在你的pip.conf,你还必须将两个索引主机添加为受信任的,所以看起来像这样:

[global]
index-url = http://download.zope.org/simple
trusted-host = download.zope.org
               pypi.org
               secondary.extra.host
extra-index-url= http://pypi.org/simple
                 http://secondary.extra.host/simple
Run Code Online (Sandbox Code Playgroud)

在此示例中,您有一个主索引和两个额外的索引URL,并且所有主机都是受信任的.

如果未将主机指定为受信任,则会收到以下错误:

pip.conf

干杯!

  • pypi 的 url 更改为 pypi.org (2认同)
  • 为了让您省去一些麻烦:pypi 的 url 现在是 `https://pypi.org/simple` (2认同)

stu*_*ioj 10

用新的URL将radtek的答案更新为pypi。

它更改为https://pypi.org

因此,要使您的pip能够使用原始pypi服务器,您需要添加“ https://pypi.org/simple ”作为Extra-index-url,同时将本地服务器保留为index-url。不要忘记将它们都添加到“受信任的主机”列表中

此更新基于onelaview的评论:“官方PyPI现在支持HTTPS,因此您可以为Extra-index-URL 指定https://pypi.org/simple/并避免在受信任的主机中指定pypi.org。”


因此,您的pip.conf需要包含以下内容:

[global]
index-url = https://somedomain.org/simple
trusted-host = somedomain.org
               pypi.org
               secondary.extra.host
extra-index-url= http://pypi.org/simple <= either one of these is fine
                 https://pypi.org/simple <= either one of these is fine
                 http://secondary.extra.host/simple
Run Code Online (Sandbox Code Playgroud)

  • 官方PyPI现在支持HTTPS,因此您可以为extra-index-url指定`https:// pypi.org / simple /`,并避免在受信任的主机中指定`pypi.org`。 (2认同)
  • @NaveenDennis 如果您使用“https”引用 *pypi.org*,我相信 HTTPS 协议的优点已经验证了您的信任,这意味着 Pip 不需要您明确表示您信任该主机。HTTPS 在 SSL/TLS 协议上工作,您的计算机将通过证书颁发机构链验证信任,当您从 Web 浏览器浏览某些“https”网站时也是如此,并且您的 Web 浏览器不需要询问您是否信任该网站网站,然后才允许您访问它。 (2认同)

Tom*_*iak 5

您还可以通过设置环境变量来做到这一点:

export PIP_EXTRA_INDEX_URL=http://localhost:8080/simple/
Run Code Online (Sandbox Code Playgroud)

这相当于

[global]
extra-index-url = http://localhost:8080/simple/
Run Code Online (Sandbox Code Playgroud)

但不需要pip.conf文件


t7e*_*t7e 5

我会添加@Tomasz Bartkowiak 的答案。PIP_TRUSTED_HOST您可以使用空格将多个 URL 传递给PIP_EXTRA_INDEX_URL

export PIP_TRUSTED_HOST="somedomain.org pypi.org secondary.extra.host"

export PIP_EXTRA_INDEX_URL="http://pypi.org/simple https://pypi.org/simple http://secondary.extra.host/simple"
Run Code Online (Sandbox Code Playgroud)