¿Cómo usar el pip de Python para descargar y guardar los archivos comprimidos para un paquete?

Si quiero usar el comando pip para descargar un paquete (y sus dependencias), pero mantener todos los archivos comprimidos que se descargan (por ejemplo, django-socialregistration.tar.gz), ¿hay alguna manera de hacerlo?

He intentado varias opciones de línea de comandos, pero siempre parece descomprimir y eliminar el archivo zip, o recibe el archivo zip, pero solo para el paquete original, no para las dependencias.

Related of "¿Cómo usar el pip de Python para descargar y guardar los archivos comprimidos para un paquete?"

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

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

Sin embargo, cuando probé esto, el paquete principal se descargó, guardó e instaló bien, pero las dependencias se guardaron con su ruta de URL completa como 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. ( Tenga en cuenta que antes de la versión 1.1, la opción --download no descargaba dependencias).

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

La documentación de la pip resume con --download para instalaciones rápidas y locales .

Siempre hago esto 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 las bibliotecas que acabo 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


Actualizar

Además, para obtener todos los paquetes instalados en un sistema, puede exportarlos todos a requirement.txt que se usará para instalarlos en otro sistema, hacemos esto:

pip freeze > requirement.txt

Luego, el requirement.txt se puede usar como anteriormente para la descarga, o haga esto para instalarlos desde el requirement.txt :

pip install -r requirement.txt

REFERENCIA: instalador de pip

pip install --download está en desuso. A partir de la versión 8.0.0 debe usar el comando de pip download :

  pip download  

En la versión 7.1.2, pip descarga la rueda de un paquete (si está disponible) con lo siguiente:

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

Lo siguiente descarga una distribución de fuente:

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

También descargan las dependencias, si pip las conoce (p. Ej., Si pip show package enumera).


Actualizar

Como señaló Anton Khodak , se prefiere el comando pip download desde la versión 8. En los ejemplos anteriores, esto significa que /path/to/downloaded/file debe darse con la opción -d , así que reemplazar la install con la download funciona.

Use pip download para descargar todos los paquetes, incluidas las dependencias

Use pip install --no-index --find-links . pip install --no-index --find-links . para instalar todos los paquetes, incluidas las dependencias. Obtiene todos los archivos de CWD . No descargará nada.

pip wheel es otra opción que debe considerar:

 pip wheel mypackage -w .\outputdir 

Descargará los paquetes y sus dependencias a un directorio (directorio de trabajo actual de forma predeterminada), pero realiza el paso adicional de convertir cualquier paquete fuente a ruedas.

Convenientemente soporta archivos de requisitos:

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

Agregue el argumento --no-deps si solo desea los paquetes solicitados específicamente:

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