We use our own python package index at my office, and we're trying to add a new one. When I try to specify both indices at the same time, I get prompted to log in, but if I use only one at a time I don't.
For example:
$ 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:
But if I specify just one of either of those --extra-index-url
arguments then I download my package just fine.
I'm 99% certain that I am passing the arguments correctly, since it's specified with an append
action in the source. So I think the problem is that both of these index URLs are from packagecloud.io
... but I could be wrong. Either way, how can I use both of my repos?
Use the extra-index-url option to tell pip where your alternate package index lives. If your package index doesn't support SSL, you can supress warnings by identifying it as a trusted-host . The example below assumes the name of your server is pypi.mydomain.com and you're running on non-standard port 8080.
The Python Package Index (PyPI) is a repository of software for the Python programming language. PyPI helps you find and install software developed and shared by the Python community. Learn about installing packages. Package authors use PyPI to distribute their software.
$HOME/. config/pip/pip.
Apparently this is a bug in pip. The HTTP basic auth information is not stored correctly when specifying multiple --extra-index-url
s that point to the same domain. I filed an issue, but in the meantime, there is a workaround. By specifying one of the --extra-index-url
s as the --index
instead, and adding PyPI as an --extra-index-url
, I was able to download my package successfully:
$ 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.
You can also use the environment variable PIP_EXTRA_INDEX_URL
. And then you have to use space as delimiter.
export PIP_EXTRA_INDEX_URL="https://user:token@repo-a/ https://user:token@repo-b/"
pip install
I found something about env vars here in the docs. Based on the example about PIP_FIND_LINKS
, I tried space and it worked.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With