para paquetes mac librerias instalar descargar actualizar python pip virtualenv requirements.txt

python - paquetes - instalar pip en windows 10



¿Cómo especificar el orden de instalación para python pip? (9)

Pymongo requiere setuptools> = 0.6c9

¿Cómo lo sabes? Requiere compilar o instalar? Usted no dice qué versión de Pymongo estaba tratando de instalar, pero mirando el archivo setup.py para la versión actual (3.2.2) no hay ninguna especificación de lo que Pymongo requiere para ejecutar setup.py ( setup_requires ) ni lo que requiere para install ( install_requires ). Sin dicha información, pip no puede garantizar una versión específica de las herramientas de configuración. Si Pymongo requiere una versión específica de setuptools para ejecutar su setup.py (en lugar de requerir setuptools para ejecutar setup función de setup ), el otro problema es que hasta hace poco no había forma de especificar esto. Ahora hay una especificación - PEP 518 - Especificación de los requisitos mínimos del sistema de compilación para los proyectos de Python , que deben implementarse brevemente en pip - Implementar el soporte PEP 518 # 3691 .

En cuanto al orden de instalación, esto se corrigió en la pipa 6.1.0;

Desde la instalación de pip - section de orden de instalación de la documentación de pip:

A partir de v6.1.0, pip instala dependencias antes de sus dependientes, es decir, en "orden topológico". Este es el único compromiso que pip hace actualmente relacionado con el orden.

Y después:

Antes de v6.1.0, pip no asumió ningún compromiso sobre el orden de instalación.

Sin embargo, sin una especificación adecuada de los requisitos por parte de Pymongo tampoco ayudará.

Estoy trabajando con fabric (0.9.4) + pip (0.8.2) y necesito instalar algunos módulos de python para múltiples servidores. Todos los servidores tienen una versión anterior de setuptools (0.6c8) que debe actualizarse para el módulo pymongo. Pymongo requiere setuptools> = 0.6c9.

Mi problema es que pip inicia la instalación con pymongo en lugar de setuptools, lo que hace que pip se detenga. Mover el orden del módulo en el archivo de requisitos no parece ayudar.

requirements.txt:

setuptools>=0.6c9 pymongo==1.9 simplejson==2.1.3

¿Hay alguna manera de especificar el orden de instalación para pip ya que no parece que lo haga correctamente por sí mismo?

Esto se puede resolver con dos archivos de requisitos separados, pero sería bueno si no tuviera que mantener varios archivos de requisitos ahora o en el futuro.

El problema persiste con pip 0.8.3.


Este es un truco tonto, pero podría funcionar. Escriba un script bash que lea de su archivo de requisitos línea por línea y ejecute el comando pip en él.

#!/bin/bash for line in $(cat requirements.txt) do pip install $line -E /path/to/virtualenv done


Lamentablemente, la sugerencia de actualización no funcionará. Si lees los otros detalles en https://github.com/pypa/pip/issues/24 , verás por qué

pip compilará todos los paquetes primero, antes de intentar instalarlos. Entonces, con un archivo de requisitos como el siguiente

numpy==1.7.1 scipy==0.13.2 statsmodels==0.5.0

La compilación de modelos de estadísticas fallará con la siguiente declaración

ImportError: statsmodels requires numpy

La solución dada para llamar manualmente a pip para cada entrada en el archivo de requisitos (mediante un script de shell) parece ser la única solución actual.


Lo siento, mi primera respuesta fue incorrecta, porque tenía setuptools> = 0.6c9.

Parece que no es posible porque setup.py de pymongo necesita setuptools> = 0.6c9, pero pip solo ha descargado setuptools> = 0.6c9, y aún no está instalado.

Alguien discutió al respecto en el problema que señalé antes.

Hace algunas semanas tuve un problema mío: no ejecute egg_info en cada paquete de la lista de requisitos antes de instalar los paquetes anteriores .

Perdón por el ruido.

Primera respuesta:

Actualice su pip a la versión 0.8.3, tiene una https://github.com/pypa/pip/issues/24 .

Ahora si actualiza todo, funciona :-)

Vea las noticias aquí: http://www.pip-installer.org/en/0.8.3/news.html


Para permitir todo tipo de entradas (por ejemplo, paquetes de repositorios git) en requirements.txt debe usar el siguiente conjunto de comandos

cat requirements.txt | xargs -n 1 -L 1 pip install

-n 1 y -L 1 son necesarias para instalar paquetes uno por uno y tratar cada línea en el archivo requirements.txt como un elemento separado.


Puedes simplemente usar:

cat requirements.txt | xargs pip install


Si tiene comentarios en su archivo de requisitos, querrá usar:

grep -v "^#" requirements.txt | xargs pip install


Siguiendo con la solución de @ lukasrms, tuve que hacer esto para que pip instale mis requisitos uno por vez:

cat requirements.txt | xargs -n 1 pip install


Terminé ejecutando pip dentro de virtualenv en lugar de usar "pip -E" porque con -Epip todavía se podían ver los paquetes de sitios de los servidores y eso obviamente estropeó algunas de las instalaciones.

También tuve problemas con servidores sin virtualenvs. Incluso si instalé setuptools con un comando pip separado, pymongo rechazaría ser instalado.

Resolví esto instalando setuptools por separado con easy_install, ya que parece ser un problema entre pip y setuptools.

fragmentos de fabfile.py:

env.activate = "source %s/bin/activate" % virtualenv_path _virtualenv("easy_install -U setuptools") _virtualenv("pip install -r requirements.txt") def _virtualenv(command) if env.virtualenv: sudo(env.activate + "&&" + command) else: sudo(command)

Tuve estos problemas con pip 0.8.3 y 0.8.2.