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.0pero no entiendo por qué.
Verifiqué dos veces parse_versiony 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-r4se instala para mí (de acuerdo con los mensajes ypip freezeel paquetetome==1.2.1.0-r4.-URespuestas:
Esta es una excelente pregunta. Me tomó una eternidad darme cuenta. Esta es la solución que me funciona:
Aparentemente, si
pippuede encontrar una versión local del paquete,pippreferirá las versiones locales a las remotas. Incluso desconecté mi computadora de Internet y lo intenté nuevamente; cuandopipaún instalé el paquete correctamente, y ni siquiera me quejé, la fuente era obviamente local.La parte realmente confusa, en mi caso, fue que
pipencontré 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
pipdar una salida detallada usando la-vbandera ... pero una no es suficiente. Realicé RTFM-ed la ayuda, que decía que puedes hacerlo-vvarias 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
pipinstalé la versión más reciente de pypi.fuente
-vvvlugar de-v -v -v.--no-cache-dirbandera 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 searches 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 pipEncontré 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
pipversión que viene con algunos paquetes de distribución (por ejemplo, Ubuntu python-pip), es posible que deba instalar unapipversión más reciente:Actualice
pipa la última versión:sudo pip install -U pipEn caso de "virtualenv", omita "sudo":
pip install -U pipEs posible que se requiera el siguiente comando, si su shell informa algo como
-bash: /usr/bin/pip: No such file or directorydespués de lapipactualización:hash -d pipAhora instale su paquete como de costumbre:
pip install -U fooo
pip install foo==package.version.herefuente
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
.pipcarpeta 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.0fuente
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 installuna versión anterior que se había construido con python3.Cosas útiles para verificar al depurar esto:
pip installafirma que no puede encontrar la versión, vea sipip searchpuede verla.-py2-claro como el día).pip install --no-cache-diren 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
torchbiblioteca):Aunque https://pypi.org/project/torchtext/ indica que se podía ejecutar
pip install torchtext, tuve que instalarlo de forma similartorchespecificando--find-linksaka-f:pip install torchtext===0.8.1 -f https://download.pytorch.org/whl/torch_stable.htmlLo 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
pipbajo el capó, no encontró la nueva versión sin la--find-linksopción.fuente