146 votes

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

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

J'ai essayé diverses options de ligne de commande, mais il semble toujours déballer et supprimer le fichier zip - ou il obtient le fichier zip, mais seulement pour le paquet original, pas pour les dépendances.

126voto

Anton Khodak Points 1872

pip install --download est déprécié. À partir de la version 8.0.0, vous devez utiliser pip download commandement :

 pip download <package-name>

121voto

Mark Gemmill Points 2851

Le site --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é, enregistré et installé sans problème, mais les dépendances ont été enregistrées avec leur chemin d'accès complet en tant que nom - un peu ennuyeux, mais tout de même tar.gz Les dossiers étaient là.

Le site --download L'option télécharge le paquet principal et ses dépendances et n'en installe aucune. ( Note que avant la version 1.1 le site --download option a fait no télécharger les dépendances).

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

Le site pip La documentation décrit l'utilisation --download pour installations rapides et locales .

5 votes

Bien, cela a en effet fonctionné - bien que j'aie marqué une --no-install option sur. Et vous avez raison à propos des noms de fichiers funky, mais au moins les fichiers sont .

0 votes

La dernière fois que j'ai vérifié, --download option télécharger le paquet avec dépendances.

0 votes

@Danial - oui, à partir de la version 1.1, --download télécharge maintenant les dépendances.

68voto

securecurve Points 967

Je fais toujours ça pour télécharger les paquets :

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

OU

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

Et quand je veux installer toutes ces bibliothèques que je viens de télécharger, je fais ça :

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

OU

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


Mise à jour

De plus, pour obtenir tous les paquets installés sur un seul système, vous pouvez les exporter vers requirement.txt qui sera utilisé pour les installer sur un autre système, on fait ça :

pip freeze > requirement.txt

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

pip install -r requirement.txt

RÉFÉRENCE : installateur pip

10voto

jpmc26 Points 3364

pip wheel est une autre option que vous devriez envisager :

pip wheel mypackage -w .\outputdir

Il téléchargera les paquets et leurs dépendances dans un répertoire (le répertoire de travail actuel par défaut), mais il effectue l'étape supplémentaire de conversion de tout paquet source en roues.

Il prend commodément en charge les fichiers d'exigences :

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

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

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

9voto

jasaarim Points 1167

Dans la version 7.1.2, pip télécharge la roue d'un paquet (si elle est disponible) avec ce qui suit :

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

Ce qui suit télécharge 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 énumère).


Mise à jour

Comme l'a noté Anton Khodak , pip download 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 donc en remplaçant install con download travaux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X