2011-09-04 20 views
81

Si deseo usar el comando pip para descargar un paquete (y sus dependencias), pero mantenga todos los archivos comprimidos que se descargan (digamos, django-socialregistration.tar.gz) - ¿hay alguna manera de hacerlo? ¿ese?¿Cómo usar el pip de Python para descargar y mantener los archivos comprimidos para un paquete?

He intentado varias opciones de línea de comandos, pero siempre parece que deshacer y eliminar el archivo zip - o se recupera el archivo zip, pero única para el paquete original, no las dependencias.

Respuesta

102

La opción --download-cache debe hacer lo que quiera:

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

Sin embargo, cuando probé esto, el principal paquete descargado, guardan y se instalan bien, pero las dependencias se salvaron con su dirección URL completa como el nombre - un poco molesto, pero todos los archivos tar.gz estaban allí.

La opción --download descarga el paquete principal y sus dependencias y no instala ninguno de ellos. (Nota que antes de la versión 1.1 la opción --download hizo no dependencias de descarga.)

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

La documentación pip describe el uso de --downloadfast & local installs.

+4

Bueno, eso sí funcionó, aunque etiqueté una opción '--no-install' en. Y tiene razón sobre los nombres de archivo funky, pero al menos los archivos están * allí *. –

+0

la última vez que revisé, la opción '--download' descargar el paquete ** con ** dependencias. –

+0

@Danial - sí, a partir de la versión 1.1, '--download' ahora descarga dependencias. –

48

que siempre hago esta opción para descargar los paquetes:

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

O

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

Y cuando quiero instalar todas aquellas bibliotecas que acaba de descargar, hago esto:

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

O

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


actualización

Además, para obtener todos los paquetes instalados en un solo sistema, se podrán exportar a todos a requirement.txt que se utiliza para intall ellos en otro sistema, hacemos esto:

pip freeze > requirement.txt

Entonces, el requirement.txt se puede utilizar como anteriormente para su descarga, o hacer esto a instalarlos desde requirement.txt:

pip install -r requirement.txt

REFERENCIA: pip installer

6

En la versión 7.1.2 pip descarga el volante de un paquete (si está disponible) por el siguiente:

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

Las siguientes descargas una distribución de fuentes:

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

Estos descarga las dependencias, así, si pip es consciente de ellos (por ejemplo, si pip show package los enumera).


actualización

Como señaló Anton Khodak, se prefiere pip download comando desde la versión 8. En los ejemplos anteriores esto significa que /path/to/downloaded/file necesario tener en cuenta con la opción de -d, por lo que reemplazar install con download obras.

33

pip install --download está obsoleto. A partir de la versión 8.0.0 se debe utilizar pip download comando:

pip download <package-name> 
+0

y cómo instalar los paquetes descargados más tarde? – knocte

+0

Esta es la respuesta más actualizada. Gracias – KJ50

+1

@knocte 'pip install path-to-download-package' –

1

Uso pip download <package1 package2 package n> para descargar todos los paquetes que incluyen dependencias

Use pip install --no-index --find-links . <package1 package2 package n> para instalar todos los paquetes que incluyen dependencias. Obtiene todos los archivos desde CWD. No descargará nada

Cuestiones relacionadas