2017-06-28 4 views
2

Je suis en cours d'exécution de mon application Python qui a fichier requirements.txt qui contient diverses dépendances. Je déploie cette application dans un environnement Pivotal Cloud Foundry. Cependant, l'environnement dans lequel je déploie l'airgapped. Par conséquent, je ne peux pas sembler obtenir les dépendances.comment télécharger des dépendances de pip localement?

Le repo Git pour CF python buildpack suggère que si une application a alors un répertoire vendor il pourrait obtenir les dépendances de là: https://github.com/cloudfoundry/python-buildpack/blob/master/bin/steps/pip-install#L18

Ma question est, comment puis-je télécharger les dépendances mentionnées dans mon requirements.txt fichier localement dans un dossier vendor?

Répondre

2

Vous pouvez récupérer toutes les dépendances avec la commande suivante (une connexion Internet est bien sûr nécessaire)

pip download -r requirements.txt 

Ensuite, vous pouvez installer hors ligne ces dépendances avec la commande suivante

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

--no-index: index des paquets Ignorer (ne regardant que --find-links URL au lieu).

-f, --find-links <URL>: Si une URL ou un chemin vers un fichier html, alors analyse les liens vers les archives. Si un chemin d'accès local ou file:// URL est un répertoire, recherchez les archives dans la liste du répertoire.

Cette réponse est tirée de this post

+0

. Si vous trouvez un doublon, veuillez le fermer plutôt que de copier la réponse. – jonrsharpe

2

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

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

utiliser juste pip à installer sur la zone de dev et vérifiez que

+0

Donc, mon 'requirements.txt' a' numpy'. Je lance la commande ci-dessus en utilisant le conteneur docker pour CF: 'docker run -v $ PWD:/myapp -it cloudfoundry/cflinuxfs2 bash' puis j'installe' pip' dans cela et ensuite lancez 'pip install - télécharger le revendeur -r exigences. txt'. Cela télécharge les fichiers dans mon répertoire 'vendeur '. et l'un des fichiers est appelé 'numpy-1.13.0-cp27-cp27mu-manylinux1_x86_64.whl'. Cependant, quand j'essaye de pousser mon application, j'obtiens une erreur 'numpy-1.13.0-cp27-cp27mu-manylinux1_x86_64' – Anthony