Estoy usando pip con un archivo de requisitos, en virtualenv, para mis proyectos de Django. Estoy tratando de actualizar algunos paquetes, especialmente Django, y recibo un error sobre los conflictos del 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 marca que desencadene una descarga total del paquete. Incluso intenté ejecutar primero un comando de desinstalación, luego la instalación pero no los dados. Tal vez me estoy perdiendo algo?
django
virtualenv
pip
gcaprio
fuente
fuente
Respuestas:
No estoy seguro de si es exactamente su 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:
Luego eliminé el
<virtualenv>/build/Django
directorio y finalmente instalé la versión adecuada con:Espero que esto ayude.
fuente
pip install Django -U
opip install Django --upgrade
como se describe en la respuesta de @JoeyG.Ejecuté el siguiente comando y se actualizó de 1.2.3 a 1.4.0
Atajo para la actualización:
Nota : si el paquete que está actualizando tiene algún requisito, este comando también actualizará todos los requisitos a las últimas versiones disponibles. En 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 satisfagan los requisitos del paquete actualizado.fuente
pip install Requests --upgrade
y solo se actualizaron las "solicitudes". La descripción dice "actualizar todos los paquetes especificados " cuando veo los documentos.pip install --upgrade django==1.4.0
de acuerdo con pip docs ejemplo 3
pero según mi experiencia, el uso de este método también actualizará cualquier paquete relacionado con él. ejemplo:
Suponga que desea actualizar
somepackage
que requiere eldjango >= 1.2.4
uso de este tipo de método, también se actualizarásomepackage
Ydjango
a la actualización más reciente. Solo para estar seguro hacer:Hacer esto actualizará
somepackage
y mantendrá django a la versión 1.2.4fuente
django
como un paquete principal y luego en el ejemplo que usasomepackage
y luego usadjango
como una dependencia.El comando de acceso directo para
--upgrade
:Es:
fuente
Si actualiza un paquete, el antiguo se desinstalará.
Una forma conveniente de hacer esto es usar este pip-upgrade que también actualiza las versiones en su
requirements.txt
archivo para los paquetes elegidos (o todos los paquetes).Instalación
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:Uso avanzado
Si los requisitos se colocan en una ubicación no estándar, envíelos como argumentos:
Si ya sabe qué paquete desea actualizar, simplemente envíelos como argumentos:
Si necesita actualizar a la versión anterior al lanzamiento / posterior al lanzamiento, agregue un
--prerelease
argumento a su comando.Divulgación completa: escribí este paquete. Espero eso ayude.
fuente
pip-upgrade -p all
actualizará todos sus paquetes y actualizará el archivo de requisitos sin necesidad de ninguna aportación suya .Si solo desea actualizar un paquete específico llamado
somepackage
, el comando que debe usar en las versiones recientes de pip esEsto 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 función de corrección de errores / nueva y el paquete actualizado depende en django (pero funciona con 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 otro modo podría dañar su aplicación, aunque con los--upgrade-strategy only-if-needed
paquetes dependientes ahora solo se actualizará según sea necesario.fuente
Normalmente, pip se limpiará después de sí mismo y eliminará el contenido del directorio de compilación. El único momento en que no hace esto es si:
--no-install
opciónEn todos los demás casos, no debería tener un
build
directorio que esté obstruyendo su entorno.fuente
Definir una versión específica para actualizar me ayudó en lugar de solo el comando de actualización.
fuente
eso resolvió para mí el problema "pip install -I --uprate psutil --force" luego simplemente desinstale psutil con la nueva versión y espere que pueda instalar de repente la versión anterior (:
fuente
Yo uso esto:
fuente