2017-06-28 3 views
2

Ich verwende meine Python-Anwendung, die requirements.txt Datei enthält, die verschiedene Abhängigkeiten enthält. Ich stelle diese Anwendung in einer Pivotal Cloud Foundry-Umgebung bereit. Die Umgebung, in der ich sie einsetze, hat jedoch Luft verloren. Daher kann ich nicht die Abhängigkeiten bekommen.Wie PIP Abhängigkeiten lokal herunterladen?

Die Git-Repo für Python CF buildpack schlägt vor, dass, wenn eine Anwendung ein vendor Verzeichnis hat, dann könnte es die Abhängigkeiten von dort erhalten: https://github.com/cloudfoundry/python-buildpack/blob/master/bin/steps/pip-install#L18

Meine Frage ist, wie kann ich die Abhängigkeiten in meiner requirements.txt Datei erwähnt herunterladen lokal in einen Ordner vendor?

Antwort

2

Sie alle Abhängigkeiten mit dem folgenden Befehl abrufen kann (eine Internetverbindung ist natürlich erforderlich)

pip download -r requirements.txt 

Dann Sie offline diese Abhängigkeiten mit dem folgenden Befehl installieren können

pip install -r requirements.txt --no-index --find-links file:///tmp/packages 

--no-index: Ignoriere den Paketindex (nur unter --find-links URLs).

-f, --find-links <URL>: Wenn eine URL oder ein Pfad zu einer HTML-Datei, dann für Links zu Archiven analysieren. Wenn ein lokaler Pfad oder file:// URL ein Verzeichnis ist, dann suchen Sie in der Verzeichnisliste nach Archiven.

Diese Antwort wird genommen von this post

+0

. Wenn Sie ein Duplikat finden, schließen Sie es bitte, anstatt die Antwort zu kopieren. – jonrsharpe

2

Blick auf: http://docs.cloudfoundry.org/buildpacks/python/index.html#vendor-app-dependencies

tl; dr pip install --download vendor -r requirements.txt

Nur pip Verwendung auf der Dev-Box zu installieren und dann, dass der Check in

+0

Also meine 'requirements.txt' hat' numpy' drin. Ich führe den obigen Befehl mit docker Container für CF: 'Docker laufen -v $ PWD:/myapp -it cloudfoundry/cflinuxfs2 bash' dann installiere ich 'pip' in diesem und dann' pip install --download vendor -r Anforderungen. txt'. Dies lädt die Dateien in meinem 'vendor'-Verzeichnis herunter. und eine der Dateien heißt 'numpy-1.13.0-cp27-cp27mu-manylinux1_x86_64.whl'. Wenn ich jedoch versuche, meine Anwendung zu pushen, erhalte ich den Fehler "numpy-1.13.0-cp27-cp27mu-manylinux1_x86_64" – Anthony

Verwandte Themen