django - txt - virtualenv python




¿Cómo puedo actualizar paquetes específicos usando pip y un archivo de requisitos? (5)

De acuerdo con el ejemplo 3 de docs pip.

pip install --upgrade django

pero en base a mi experiencia, usar este método también actualizará cualquier paquete relacionado con él. ejemplo:

Supongamos que desea actualizar somepackage que requiera django >= 1.2.4 usando este tipo de método, también actualizará somepackage Y django a la actualización más reciente. Solo para estar seguro hacer:

# assume you want to keep django 1.2.4
pip install --upgrade somepackage django==1.2.4

Al hacer esto se actualizará somepackage y se somepackage django a la versión 1.2.4

Estoy usando pip con un archivo de requisitos, en un virtualenv, para mis proyectos Django. Estoy intentando actualizar algunos paquetes, especialmente Django, y recibo un error sobre los conflictos de código fuente:

Source in `<virtualenv`>/build/Django has version 1.2.3 that conflicts with Django==1.2.4 (from -r requirements/apps.txt (line 3))

Eso es después de actualizar el número de versión de Django de 1.2.3 a 1.2.4 en mi archivo de requisitos. Estoy usando este comando para hacer la actualización:

pip --install --upgrade -E `<virtualenv dir`> --requirement `<requirements file`>

No puedo encontrar ninguna bandera que active una nueva descarga total del paquete. Incluso intenté ejecutar un comando de desinstalación primero, luego la instalación, pero no los dados. Tal vez me estoy perdiendo algo?


Ejecuté el siguiente comando y lo actualicé de 1.2.3 a 1.4.0

pip install Django --upgrade

Atajo para la actualización:

pip install Django -U

Nota : si el paquete que está actualizando tiene algún requisito, este comando además actualizará todos los requisitos a las últimas versiones disponibles. En las versiones recientes de pip, puede evitar este comportamiento especificando --upgrade-strategy only-if-needed . Con ese indicador, las dependencias no se actualizarán a menos que las versiones instaladas de los paquetes dependientes ya no cumplan con los requisitos del paquete actualizado.


No estoy seguro de que sea exactamente tu problema, pero en mi caso, no pude actualizar Django a 1.2.4. Siempre terminaba con la versión 1.2.3, así que desinstalé Django con:

<virtualenv>/bin/pip uninstall Django

Luego <virtualenv>/build/Django directorio <virtualenv>/build/Django y finalmente instalé la versión adecuada con:

<virtualenv>/bin/pip install Django

Espero que esto ayude.


Normalmente, pip se limpia después de sí mismo y elimina el contenido del directorio de compilación. La única vez que no lo hace es si:

  1. --no-install la --no-install
  2. Estás utilizando paquetes editables
  3. La instalación fue cancelada o fue interrumpida de otra manera.

En todos los demás casos, no debe tener un directorio de build que esté obstruyendo su entorno.


Si solo desea actualizar un paquete específico llamado somepackage , el comando que debe usar en las versiones recientes de pip es

pip install --upgrade --upgrade-strategy only-if-needed somepackage

Esto es muy útil cuando desarrolló una aplicación en django que actualmente solo funcionará con una versión específica de django (por ejemplo, Django = 1.9.x) y desea actualizar algún paquete dependiente con una característica de corrección de errores / nueva y el paquete actualizado depende en django (pero funciona con, digamos, cualquier versión de django después de 1.5). El comportamiento predeterminado de pip install --upgrade django-some-package sería actualizar django a la última versión disponible que, de lo contrario, podría romper su aplicación, aunque con los paquetes dependientes --upgrade-strategy only-if-needed ahora solo será actualizado según sea necesario.





pip