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

105

Si je veux utiliser la pipcommande pour télécharger un package (et ses dépendances), mais conserver tous les fichiers compressés 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écompresser et supprimer le fichier zip - ou il obtient le fichier zip, mais uniquement pour le package d'origine, pas les dépendances.

Jean C
la source

Réponses:

79

pip install --downloadest obsolète. À partir de la version 8.0.0, vous devez utiliser la pip downloadcommande:

 pip download <package-name>
Anton Khodak
la source
3
et comment installer les packages téléchargés plus tard?
knocte
2
C'est la réponse la plus à jour. Merci
KJ50
3
@knoctepip install path-to-downloaded-package
Anton Khodak
5
essayé il y a quelques jours et je pense qu'il a encore essayé de récupérer deps sur Internet au lieu d'utiliser ceux téléchargés; IIRC, je devais utilisersudo pip install <path-to-downloaded-package> --no-index --find-links `pwd`
knocte
3
Notez que pip downloadprend également en charge -r requirements.txtafin que vous puissiez facilement les télécharger tous à partir d'une machine connectée à Internet, puis les copier sur une machine hors ligne et installer les commentateurs ci-dessus mentionnés
Hawkins
113

L' --download-cacheoption doit faire ce que vous voulez:

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

Cependant, lorsque j'ai testé cela, le package principal a été téléchargé, enregistré et installé correctement, mais les dépendances ont été enregistrées avec leur chemin d'URL complet comme nom - un peu ennuyeux, mais tous les tar.gzfichiers étaient là.

L' --downloadoption télécharge le package principal et ses dépendances et n'installe aucun d'entre eux. ( Notez que avant la version 1.1 l' --downloadoption de ne pas télécharger les dépendances.)

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

La pipdocumentation décrit l'utilisation --downloadpour les installations rapides et locales .

Mark Gemmill
la source
5
Bien, cela a effectivement fonctionné - bien que j'aie marqué une --no-installoption. Et vous avez raison sur les noms de fichiers géniaux, mais au moins les fichiers sont .
John C
la dernière fois que j'ai vérifié, l' --downloadoption télécharger le package avec les dépendances.
Mohammad Niknam
3
--download-cache est obsolète. use pip install --download <dir> <pkg>
ostler.c
18
pip install --downloadest désormais obsolète et sera supprimé de pip 10. pip.pypa.io/en/latest/reference/pip_download/#overview . Utilisez pip download somepackage.
Sнаđошƒаӽ
17
Plus précisément, le nouvel équivalent estpip download -d <dir> { -r requirements.txt | <packagename> }
rrauenza
57

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

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 ceci:

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


Mettre à jour

De plus, pour installer tous les packages sur un système, vous pouvez tous les exporter vers requirement.txtce qui sera utilisé pour les installer sur un autre système, nous faisons ceci:

pip freeze > requirement.txt

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

pip install -r requirement.txt

RÉFÉRENCE: installateur pip

sécuriser
la source
6

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

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 les pip show packagerépertorie).


Mettre à jour

Comme l'a noté Anton Khodak , la pip downloadcommande est préférée depuis la version 8. Dans les exemples ci-dessus, cela signifie qu'il /path/to/downloaded/filefaut donner une option -d, donc le remplacer installpar downloadfonctionne.

jasaarim
la source
Je dois développer sous Windows et déployer sur RH7 sans aucune connexion Internet. Je télécharge donc les paquets sources avec --no-binary: all:. Cependant, cela échoue lors de la collecte de django-pyodbc-azure == 2.0.4.1 car ce paquet n'a pas de source. Existe-t-il un moyen de télécharger la source ou si cela n'existe pas, de télécharger le weehl?
cwhisperer
6

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

Utilisez 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 à partir de CWD. Il ne téléchargera rien

Siva Kranthi Kumar
la source
2

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 de conversion de tous les packages sources en roues.

Il prend en charge les fichiers d'exigences:

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

Ajoutez l' --no-depsargument si vous ne voulez que les packages spécifiquement demandés:

pip wheel mypackage -w .\outputdir --no-deps
jpmc26
la source
0

Je préférerais (RHEL) - pip download package==version --no-deps --no-binary=:all:

Santosh K
la source
-1

installation de packages python hors ligne

Pour les utilisateurs de Windows :

Pour télécharger dans un fichier, ouvrez votre cmd et procédez comme suit:

cd <*the file-path where you want to save it*>

pip download <*package name*>

le package et les dépendances seront téléchargés dans le répertoire de travail actuel.

Pour installer à partir du répertoire de travail actuel:

définissez votre dossier dans lequel vous avez téléchargé en tant que cwd, puis suivez ces étapes:

pip install <*the package name which is downloded as .whl*> --no-index --find-links <*the file locaation where the files are downloaded*>

cela recherchera les dépendances à cet emplacement.

Joseph Puthumana
la source
si vous ne spécifiez pas la plate-forme, il téléchargera les fichiers pour le système d'exploitation actuel. Par conséquent, cela ne fonctionnera pas si vous installez les fichiers téléchargés sur un autre système d'exploitation
Prometheus