2009-02-09 23 views

Respuesta

16

pip (http://pypi.python.org/pypi/pip/) es un reemplazo inmediato para la herramienta easy_install y puede hacerlo.

Simplemente ejecute easy_install pip y establezca una variable de entorno PIP_DOWNLOAD_CACHE en la ruta que desea que pip almacene los archivos. Tenga en cuenta que la memoria caché no funcionará con las dependencias que se descargan desde un repositorio de código fuente (como svn/git/hg/bzr).

A continuación, utilice pip install en lugar de easy_install

+7

Una cosa a tener en cuenta es 'pip can install binary (_. Egg files_)'. Esto es crucial en las plataformas de Windows. –

13

Aquí está mi solución con PIP, incluso la gestión de la instalación de paquetes binarios y utilizable en ambos, Linux y Windows. Y como se solicitó, limitará la descarga de PyPi al mininum y, como bonificación adicional, en Linux, permite acelerar la instalación repetida de paquetes que generalmente requieren compilación en una fracción de segundo.

La configuración toma algunos pasos, pero creo que vale la pena hacerlo.

Crear archivo de configuración PIP

Crear archivo de configuración de PIP (en Linux: ~/.pip/pip.conf, en Windows% HOME% \ pip \ pip.ini)

Mi uno tiene este contenido :

[global] 
download-cache = /home/javl/.pip/cache 
find-links = /home/javl/.pip/packages 

[install] 
use-wheel = yes 

[wheel] 
wheel-dir = /home/javl/.pip/packages 

Rellenar cache dir - pasa automáticamente

El dir cache conseguirá en caché versión de los datos descargados de PyPI cada vez, p ip intenta obtener algún paquete de pypi. Es fácil conseguirlo allí (no se necesita cuidado especial), pero tenga en cuenta que, desde el punto de vista del punto de vista, estos son solo datos cobrados descargados de PyPi, no paquetes, por lo que si usa una opción --no-index, no funcionará.

pip install --download para poblar packages dir

El dir packages es lugar para poner los archivos del paquete real para. P.ej. por mi paquete favorito plac, lo haría:

$ pip instalar --download ~/.pip/plac paquetes

y el archivo del paquete plac se appeare en ese directorio. Incluso puede usar el archivo -r requirements.txt para hacer esto para múltiples paquetes a la vez.

Estos paquetes se utilizan incluso con $ pip install --no-index <something>.

prevenir la repetición de la compilación del mismo paquete en Linux

P. ej El paquete lxml requiere una compilación, y la descarga y compilación puede llevar de 45 segundos a minutos. Usando el formato de rueda, puede guardar aquí mucho.

Instalar wheel herramienta, si no lo tiene todavía:

$ pip install wheel 

Crear la rueda de lxml (suponiendo, que ha logrado instalar lxml en el pasado - que requiere algunas bibliotecas en el sistema que se instalen):

$ pip wheel lxml 

Este alto descargar, compilar, pero finalmente se traduce en archivos lxml whl estar en packgages dir.

Desde entonces

$ pip install lxml 

o incluso más rápido

$ pip install --no-index lxml 

tendrá fracción de un segundo, ya que utiliza la rueda con formato de paquete.

Preparar paquete de la rueda de paquete setup exe Ventana

(nota: esto puede ser preparado, incluso en la máquina Linux, no hay compilación, sólo algunos reempaque de archivo exe en whl.)

  1. descargar el formulario exe del paquete de PyPI, por ejemplo:

    $ wget https://pypi.python.org/packages/2.7/l/lxml/lxml-3.2.3.win32-py2.7.exe#md5=14ab978b7f0a3382719b65a1ca938d33 $ dir lxml-3.2.3.win32-py2.7.exe

  2. convertirlo en whl

    $ rueda convertido lxml-3.2.3.win32-py2.7.exe $ dir lxml-3.2.3.win32-py2.7.exe lxml-3.2. 3-CP27-ninguno-win32.whl

  3. prueba que:

    $ PIP instalar lxml

o

$ pip install --no-index lxml 

será muy rápido.

Tenga en cuenta que wheel convert puede hacer exactamente la misma conversión para paquetes con formato de huevo.

Vamos easy_install y setup.py install reutilizar su packages dir

easy_install y $ python setup.py install no parecen ofrecer caché de descarga, pero permiten utilizar paquetes disponemos en nuestro packages dir.

Para ello, edición de archivos de configuración de estas dos herramientas:

En Linux: $HOME/.pydistutils.cfg

En Windows: %HOME%\pydistutils.cfg

En mi caso tengo aquí en :

[easy_install] 
find_links = /home/javl/.pip/packages 

Esta configuración puede ayudar incluso en algunos casos de llamadas pip install, cuando pip intenta en atasco un paquete, declarando dependencia de otros. A medida que delegue esta tarea en setup.py llame, sin la configuración .pydistutils.cfg, descargará el archivo de PyPi.

Desafortunadamente, el formato de rueda no es compatible en este caso (hasta donde yo sé).

Cuestiones relacionadas