2012-01-09 19 views
129

Me pregunto si hay alguna manera de decirle a pip, específicamente en un archivo de requisitos, que instale un paquete con una versión mínima (pip install package>=0.2) y una versión máxima que nunca se debe instalar (API teórica: pip install package<0.3).¿Cómo instalar un paquete con el rango de versión mínimo y máximo?

Lo pido porque estoy usando una biblioteca de terceros que está en desarrollo activo. Me gustaría que mi archivo de requisitos pip especificara que siempre debería instalar la versión menor más reciente de la rama 0.5.x, pero no quiero que pip intente alguna vez instalar versiones nuevas más recientes (como 0.6.x) ya que la API es diferente. Esto es importante porque aunque la rama 0.6.x está disponible, los desarrolladores todavía están liberando parches y correcciones de errores en la rama 0.5.x, por lo que no quiero usar una línea estática package=0.5.9 en mi archivo de requisitos.

¿Hay alguna manera de hacerlo?

Respuesta

169

que puede hacer:

$ pip install "package>=0.2,<0.3" 

Y pip buscará el mejor partido, suponiendo que la versión es de al menos 0,2 y menos de 0,3.

Esto también se aplica al pip requirements files. Consulte los detalles completos sobre los especificadores de versión en PEP 440.

+0

¿El "paquete> = 0.2, <0.3" también es válido? –

+0

Sí, es válido. Vea mi respuesta actualizada y encuentre más información sobre lo que es válido y lo que no. –

+0

Enlace muerto. Documentación oficial [aquí] (http://www.pip-installer.org/en/latest/logic.html#requirements-file-format). – tjameson

7

también se puede utilizar:

pip install package==0.5.* 

que es más consistente y fácil de leer.

+1

Esta es una forma mucho mejor de gestionar 'requirements.txt' IMO. El uso de 'paquete == 1. *' en lugar de 'paquete> = 1.2' evita que pip instale la versión principal 2+ para el paquete, lo que es deseable ya que los cambios de versiones mayores a menudo son incompatibles. –

Cuestiones relacionadas