Gelegentlich möchte man Python Packages von verschiedenen Servern laden und installieren. Grundsätzlich lässt sich dieses Problem mittels dem Hinzufügen von –index-url <url> (default: https://pypi.python.org/simple) bzw. –extra-index-url <url> lösen.
Lösung 1:
Hinzufügen von extra-index-urls als erstes statement in der requirements.txt Datei.
Dies fügt eine weitere Index Url hinzu ohne jedoch den Hauptindex zu überschreiben. Dies würde passieren, wenn -i bzw. –index-url zum Einsatz käme. Dann würde pip versuchen alle packages über den nun als Hauptindex gültigen Server laden
# requirements.txt --extra-index-url http://my-index-url.domain/my-package my-package==1.0.0 other-packages
Lösung 2:
Kaskadierende requirements Dateien.
Auch hier fügt man den zusätzlichen Server als extra-index-url hinzu. Die zu importierenden Packages sind in Dateien im Verzeichnis requirements definiert. Die Dateien selbst sind in der requirements.txt referenziert.
# requirements.txt --extra-index-url http://my-index-url.domain/my-package -r requirements/req2.txt -r requirements/req3.txt
# requirements/req2.txt my-package==1.0.0
# requirements/req3.txt other-package==1.0.0
In jedem Fall sollte pip nun in der Lage sein, die packages zu installieren. Alle Packages, die nicht im Hauptindex gefunden werden können, werden vom Server, der in extra-index-url definiert wurde, geladen.
pip install -r requirements.txt