txt example entorno create crear django virtualenv pip

django - example - ¿Cómo puedo actualizar paquetes específicos usando pip y un archivo de requisitos?



requirements.txt python example (7)

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?


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


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.


El comando de acceso directo para --upgrade :

pip install Django --upgrade

Es:

pip install Django -U


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 actualiza un paquete, el anterior será desinstalado.

Una forma conveniente de hacer esto es usar este actualizador de pip-upgrader que también actualiza las versiones en su archivo Requirements.txt para los paquetes elegidos (o todos los paquetes).

Instalación

pip install pip-upgrader

Uso

Active su virtualenv (importante, porque también instalará las nuevas versiones de paquetes actualizados en virtualenv actual).

cd en su directorio de proyecto, luego ejecute:

pip-upgrade

Uso avanzado

Si los requisitos se colocan en una ubicación no estándar, envíelos como argumentos:

pip-upgrade path/to/requirements.txt

Si ya sabe qué paquete desea actualizar, simplemente envíelos como argumentos:

pip-upgrade -p django -p celery -p dateutil

Si necesita actualizar a la versión preliminar o posterior a la publicación, agregue el argumento --prerelease a su comando.

Revelación completa: escribí este paquete. Espero eso ayude.


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.