使用带有两个指向同一域的--extra-index-url参数的pip

时间:2016-08-22 17:36:02

标签: python pip

我们在办公室使用自己的python包索引,我们正在尝试添加一个新索引。当我尝试同时指定两个索引时,系统会提示我登录,但如果我一次只使用一个索引,则不会。

例如:

$ pip install --user --upgrade \
    --extra-index-url https://<api token>:@packagecloud.io/2rs2ts/oldrepo/pypi/simple \
    --extra-index-url https://<other api token>:@packagecloud.io/2rs2ts/newrepo/pypi/simple \
    mypackage
Collecting mypackage
User for packagecloud.io:

但如果我只指定其中一个--extra-index-url个参数,那么我就可以下载我的包。

我99%确定我正确地传递了参数,因为it's specified with an append action in the source。所以我认为问题是这两个索引URL都来自packagecloud.io ......但我可能错了。无论哪种方式,我如何使用我的两个回购?

2 个答案:

答案 0 :(得分:3)

显然这是pip中的一个错误。指定指向同一域的多个--extra-index-url时,未正确存储HTTP基本身份验证信息。 I filed an issue,但与此同时,还有一个解决方法。通过将--extra-index-url之一指定为--index,并将PyPI添加为--extra-index-url,我可以成功下载我的包:

$ pip install --user --upgrade \
    --index https://<api token>:@packagecloud.io/2rs2ts/oldrepo/pypi/simple \
    --extra-index-url https://<other api token>:@packagecloud.io/2rs2ts/newrepo/pypi/simple \
    --extra-index-url https://pypi.python.org/simple \
    mypackage
Collecting mypackage
  Downloading https://packagecloud.io/2rs2ts/newrepo/pypi/packages/mypackage-1.0.0-py2-none-any.whl (52kB)
etc. etc.

答案 1 :(得分:0)

--extra-index-url

接受一个列表(它应该被称为--extra-index-urls)。尝试以逗号分隔您的网址,例如:

pip install --user --upgrade \
    --extra-index-url https://<api token>:@packagebutt.io/2rs2ts/oldrepo/pypi/simple, \
    https://<other api token>:@packagebutt.io/2rs2ts/newrepo/pypi/simple \
    mypackage