web-dev-qa-db-fra.com

Comment utiliser le pip de Python pour télécharger et conserver les fichiers compressés d'un paquet?

Si je veux utiliser la commande pip pour télécharger un paquet (et ses dépendances), mais garder tous les fichiers compressés téléchargés (par exemple, Django-socialregistration.tar.gz ) - Y-a-t-il un moyen de faire ça?

J'ai essayé diverses options de ligne de commande, mais il semble toujours décompresser et supprimer le fichier zip - ou il obtient le fichier zip, mais niquement pour le package d'origine, pas le dépendances.

90
John C

pip install --download est obsolète. A partir de la version 8.0.0, vous devriez utiliser pip download commande:

 pip download <package-name>
58
Anton Khodak

L'option --download-cache Devrait faire ce que vous voulez:

pip install --download-cache="/pth/to/downloaded/files" package

Cependant, lorsque j'ai testé cela, le paquet principal a été téléchargé, sauvegardé et installé correctement, mais les dépendances ont été sauvegardées avec leur chemin complet comme nom - un peu gênant, mais tous les fichiers tar.gz Étaient présents.

L'option --download Télécharge le paquet principal et ses dépendances et n'installe aucun d'entre eux. ( Notez que avant la version 1.1 l'option --download Était pas dépendances de téléchargement.)

pip install package --download="/pth/to/downloaded/files"

La documentation de pip utilise --download Pour installations rapides et locales .

111
Mark Gemmill

Je fais toujours cela pour télécharger les packages:

pip install --download /path/to/download/to_packagename

OR

pip install --download=/path/to/packages/downloaded -r requirements.txt

Et quand je veux installer toutes les bibliothèques que je viens de télécharger, je fais ceci:

pip install --no-index --find-links="/path/to/downloaded/dependencies" packagename

OR

pip install --no-index --find-links="/path/to/downloaded/packages" -r requirements.txt


Mettre à jour

En outre, pour obtenir tous les packages installés sur un système, vous pouvez tous les exporter au format requirement.txt qui sera utilisé pour les installer sur un autre système, nous faisons ceci:

pip freeze > requirement.txt

Puis le requirement.txt peut être utilisé comme ci-dessus pour le téléchargement, ou le faire pour les installer à partir de requirement.txt:

pip install -r requirement.txt

REFERENCE: installateur pip

52
securecurve

Dans la version 7.1.2, pip télécharge la roue d'un package (si disponible) avec les éléments suivants:

pip install package -d /path/to/downloaded/file

Les téléchargements suivants une distribution source:

pip install package -d /path/to/downloaded/file --no-binary :all:

Ceux-ci téléchargent également les dépendances, si pip en a connaissance (par exemple, si pip show package les répertorie).


Mettre à jour

Comme noté par Anton Khodak , pip download La commande est préférée depuis la version 8. Dans les exemples ci-dessus, cela signifie que /path/to/downloaded/file doit être donné avec l'option -d, le remplacement de install par download fonctionne.

7
jasaarim

Utilisation pip download <package1 package2 package n> pour télécharger tous les paquets, y compris les dépendances

Utilisation pip install --no-index --find-links . <package1 package2 package n> pour installer tous les packages, y compris les dépendances. Il récupère tous les fichiers de CWD. Il ne téléchargera rien

6
Siva Kranthi Kumar

pip wheel est une autre option à considérer:

pip wheel mypackage -w .\outputdir

Il téléchargera les packages et leurs dépendances dans un répertoire (répertoire de travail actuel par défaut), mais il effectuera l'étape supplémentaire consistant à convertir les packages source en roues.

Il prend facilement en charge les fichiers de configuration requise:

pip wheel -r requirements.txt -w .\outputdir

Ajouter le --no-deps argument si vous ne voulez que les paquets spécifiquement demandés:

pip wheel mypackage -w .\outputdir --no-deps
1
jpmc26