Acabo de cargar una nueva versión de mi paquete en PyPi (1.2.1.0-r4): puedo descargar el archivo egg e instalarlo con easy_install, y la versión se comprueba correctamente. Pero cuando intento instalar usando pip, instala la versión 1.1.0.0 en su lugar. Incluso si especifico explícitamente la versión con la que pip pip install -Iv tome==1.2.1.0-r4
, recibo este mensaje:, Requested tome==1.2.1.0-r4, but installing version 1.1.0.0
pero no entiendo por qué.
Verifiqué dos veces parse_version
y confirmé que la cadena de la versión en 1.2.1 es mayor que en 1.1.0 como se muestra:
>>> from pkg_resources import parse_version as pv
>>> pv('1.1.0.0') < pv('1.2.1.0-r4')
True
>>>
Entonces, ¿alguna idea de por qué está eligiendo instalar 1.1.0 en su lugar?
python
pip
setuptools
Brianmearns
fuente
fuente
pip install -Iv tome==1.2.1.0-r4
se instala para mí (de acuerdo con los mensajes ypip freeze
el paquetetome==1.2.1.0-r4
.-U
Respuestas:
Esta es una excelente pregunta. Me tomó una eternidad darme cuenta. Esta es la solución que me funciona:
Aparentemente, si
pip
puede encontrar una versión local del paquete,pip
preferirá las versiones locales a las remotas. Incluso desconecté mi computadora de Internet y lo intenté nuevamente; cuandopip
aún instalé el paquete correctamente, y ni siquiera me quejé, la fuente era obviamente local.La parte realmente confusa, en mi caso, fue que
pip
encontré las versiones más nuevas en pypi , las informó y luego siguió adelante y reinstaló la versión anterior de todos modos ... arggh. Además, no me dijo qué estaba haciendo y por qué.Entonces, ¿cómo resolví este problema?
Puede
pip
dar una salida detallada usando la-v
bandera ... pero una no es suficiente. Realicé RTFM-ed la ayuda, que decía que puedes hacerlo-v
varias veces, hasta 3 veces, para obtener una salida más detallada. Así que lo hice:Luego miré a través de la salida. Una línea me llamó la atención:
Eliminé ese directorio, después de lo cual
pip
instalé la versión más reciente de pypi.fuente
-vvv
lugar de-v -v -v
.--no-cache-dir
bandera en lugar de buscar y eliminar el archivo en formato/tmp/
.Intente forzar la descarga del paquete nuevamente con:
pip install --no-cache-dir --upgrade <package>
fuente
pip search
es más reciente.Gracias a Marcus Smith , quien hace un trabajo increíble como mantenimiento de pip, esto se solucionó en la versión 1.4 de pip que se lanzó el 2013-07-23.
Información relevante del registro de cambios para esta versión
fuente
pip install -U pip
Encontré aquí que hay un error conocido en pip que no verifica la versión si hay un directorio de compilación con fuentes descomprimidas. He comprobado esto en mi paquete problemático y después de eliminar sus fuentes del directorio de compilación, pip instalé la versión requerida.
fuente
Si está utilizando una
pip
versión que viene con algunos paquetes de distribución (por ejemplo, Ubuntu python-pip), es posible que deba instalar unapip
versión más reciente:Actualice
pip
a la última versión:sudo pip install -U pip
En caso de "virtualenv", omita "sudo":
pip install -U pip
Es posible que se requiera el siguiente comando, si su shell informa algo como
-bash: /usr/bin/pip: No such file or directory
después de lapip
actualización:hash -d pip
Ahora instale su paquete como de costumbre:
pip install -U foo
o
pip install foo==package.version.here
fuente
Tengo el mismo problema para actualizar pika 0.9.5 a 0.9.8. La única forma de trabajo fue la instalación del archivo tar:
pip install https://pypi.python.org/packages/source/p/pika/pika-0.9.8.tar.gz
.fuente
En mi caso, tuve que eliminar la
.pip
carpeta en mi directorio de inicio y luego pude obtener versiones posteriores de varias bibliotecas. Tenga en cuenta que esto fue en Linux.pip --version pip 18.1 from /usr/lib/python2.7/site-packages/pip (python 2.7) virtualenv --version 15.1.0
fuente
Descubrí que si usa microversiones, pip no parece reconocerlas. Por ejemplo, no pudimos actualizar la versión 1.9.9.1.
fuente
En mi caso, la versión de python utilizada (3.4) no cumplió con los requisitos de dependencias de Django 2.1 (python> = 3.5).
fuente
En mi caso, estoy instalando un paquete .tar.gz de Artifactory al que realizo muchas actualizaciones. Para sobrescribir mis archivos de Python en caché y siempre tomar / instalar lo último que pude ejecutar:
pip install --no-cache-dir --force-reinstall <path/to/tar.gz>
Debería ver esto, volver a descargar los archivos necesarios e instalarlos, en lugar de usar su caché local.
fuente
En mi caso, alguien había publicado la última versión de un paquete con python2, por lo que al intentarlo, tomé
pip3 install
una versión anterior que se había construido con python3.Cosas útiles para verificar al depurar esto:
pip install
afirma que no puede encontrar la versión, vea sipip search
puede verla.-py2-
claro como el día).pip install --no-cache-dir
en caso de que pip no se moleste en preguntar a Internet porque ya tiene su respuesta localmente.fuente
Había ocultado archivos sin versión en la pestaña Git en PyCharm que se estaban instalando con
pip install .
aunque no vi los archivos en ningún otro lugar.Me tomó mucho tiempo encontrarlo y lo publiqué con la esperanza de que ayude a alguien más.
fuente
En caso de que alguien más tenga problemas para actualizar el texto de antorcha (o probablemente cualquier otro
torch
biblioteca):Aunque https://pypi.org/project/torchtext/ indica que se podía ejecutar
pip install torchtext
, tuve que instalarlo de forma similartorch
especificando--find-links
aka-f
:pip install torchtext===0.8.1 -f https://download.pytorch.org/whl/torch_stable.html
Lo que me molestó fue que PyCharm me indicó la nueva versión, pero no pudo encontrarla al intentar actualizarla. Supongo que PyCharm usa su propio mecanismo para detectar nuevas versiones. Luego, al invocar
pip
bajo el capó, no encontró la nueva versión sin la--find-links
opción.fuente