tools setup not found easy_install easy python easy-install egg python-wheel

python - setup - Easy_install cache download files



python 3 setuptools (2)

¿Hay alguna forma de configurar easy_install para evitar tener que volver a descargar los archivos cuando falla una instalación?


pip ( http://pypi.python.org/pypi/pip/ ) es un reemplazo directo 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 en la que quiere que pip almacene los archivos. Tenga en cuenta que la caché no funcionará con las dependencias que se descargan desde un repositorio de código fuente (como svn / git / hg / bzr).

Luego use pip install lugar de easy_install


Aquí está mi solución usando pip, administrando incluso la instalación de paquetes binarios y utilizable tanto en Linux como en 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 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

Poblar el directorio de cache : se ejecuta automáticamente

El directorio de cache obtendrá una versión en caché de los datos descargados de pypi cada vez, pip intenta obtener algún paquete de pypi. Es fácil conseguirlo allí (no es necesario tener cuidado especial), pero tenga en cuenta que, desde el punto de vista pip, estos son solo datos cobrados descargados de PyPi, no paquetes, por lo que en caso de que use una opción --no-index , no trabajará.

pip install --download para poblar packages dir

El directorio de packages es el lugar donde colocar los archivos del paquete real. Por ejemplo, para mi paquete favorito, lo haría:

$ pip install --download ~ / .pip / packages plac

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

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

Evite la compilación repetida del mismo paquete en Linux

Por lxml 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.

Instale la herramienta de wheel , si aún no la tiene:

$ pip install wheel

Cree la rueda para lxml (asumiendo que ha logrado instalar lxml en el pasado, requiere que se instalen algunas librerías en el sistema):

$ pip wheel lxml

Esto pasa por la descarga, la compilación, pero finalmente da como resultado que el archivo lxml whl esté en el directorio de packgages .

Desde entonces

$ pip install lxml

o incluso más rápido

$ pip install --no-index lxml

tomará una fracción de segundo, ya que usa un paquete con formato de rueda.

Preparar paquete de rueda desde el paquete de configuración de Windows

(Nota: esto se puede preparar incluso en máquinas con Linux, no hay compilación, solo algunas reempaquetaduras de archivos exe en whl ).

  1. descargue la forma 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 a whl

    $ wheel convert lxml-3.2.3.win32-py2.7.exe $ dir lxml-3.2.3.win32-py2.7.exe lxml-3.2.3-cp27-none-win32.whl

  3. Pruébalo:

    $ pip install lxml

o

$ pip install --no-index lxml

será muy rápido.

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

Deje easy_install y setup.py install reutilice sus packages dir

easy_install y $ python setup.py install no parecen ofrecer caché de descarga, pero permiten usar los paquetes que tenemos en nuestros packages dir.

Para hacerlo, edite el archivo de configuración para estas dos herramientas:

En Linux: $HOME/.pydistutils.cfg

En Windows: %HOME%/pydistutils.cfg

En mi caso, tengo aquí en /home/javl/.pydistutils.cfg :

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

Esta configuración puede ayudar incluso en algunos casos de llamadas de pip install de pip install , cuando pip intenta instalar un paquete, declarando la dependencia de otros. A medida que delegue esta tarea en la llamada a setup.py , 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é).