Instalación de una versión de paquete específica con pip

Resuelto Joe asked hace 13 años • 12 respuestas

Estoy intentando instalar la versión 1.2.2 de MySQL_python, usando un entorno virtual nuevo creado con la --no-site-packagesopción. La versión actual que se muestra en PyPi es 1.2.3 . ¿Hay alguna forma de instalar la versión anterior? Yo he tratado:

pip install MySQL_python==1.2.2

Sin embargo, cuando se instala, todavía se muestra MySQL_python-1.2.3-py2.6.egg-infoen los paquetes del sitio. ¿Es este un problema específico de este paquete o estoy haciendo algo mal?

Joe avatar Mar 08 '11 05:03 Joe
Aceptado

TL;DR :

Actualización a partir del 28/12/2022 :

pip install --force-reinstall -v

Por ejemplo:pip install --force-reinstall -v "MySQL_python==1.2.2"

Qué significan estas opciones:

  • --force-reinstalles una opción para reinstalar todos los paquetes incluso si ya están actualizados.
  • -ves para detallado. Puede combinarlos para obtener aún más detalle (es decir -vv,) hasta 3 veces (por ejemplo --force-reinstall -vvv,).

Gracias a @Peter por resaltar esto (¡y parece que el contexto de la pregunta se ha ampliado dado el momento en que se formuló la pregunta por primera vez!), la documentación de Python analiza una advertencia con el uso -I, ya que puede interrumpir su instalación si se instaló con un administrador de paquetes diferente o si su paquete es/era una versión diferente.


Respuesta original:

  • pip install -Iv(es decir pip install -Iv MySQL_python==1.2.2)

Qué significan estas opciones:

  • -Isignifica --ignore-installedque ignorará los paquetes instalados y los sobrescribirá.
  • -ves para detallado. Puede combinarlos para obtener aún más detalle (es decir -vv,) hasta 3 veces (por ejemplo -Ivvv,).

Para más información, verpip install --help

Primero, veo dos problemas con lo que estás intentando hacer. Como ya tiene una versión instalada, debe desinstalar el controlador existente actual o usarpip install -I MySQL_python==1.2.2

Sin embargo, pronto descubrirás que esto no funciona. Si observa el registro de instalación de pip, o si realiza una comprobación, pip install -Iv MySQL_python==1.2.2encontrará que el enlace URL de PyPI no funciona para MySQL_python v1.2.2. Puede verificar esto aquí: http://pypi.python.org/pypi/MySQL-python/1.2.2

Los enlaces de descarga 404 y los enlaces de URL alternativos se están redirigiendo infinitamente debido a la reciente actualización de sourceforge.net y la URL obsoleta de PyPI.

Entonces, para instalar correctamente el controlador, puede seguir estos pasos:

pip uninstall MySQL_python
pip install -Iv http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.2/MySQL-python-1.2.2.tar.gz/download
Mahmoud Abdelkader avatar Mar 07 '2011 23:03 Mahmoud Abdelkader

Incluso puedes usar un rango de versiones con pip installcomando. Algo como esto:

pip install 'stevedore>=1.3.0,<1.4.0'

Y si el paquete ya está instalado y desea degradarlo, agregue algo --force-reinstallcomo esto:

pip install 'stevedore>=1.3.0,<1.4.0' --force-reinstall
user1978556 avatar Nov 19 '2015 19:11 user1978556

Una forma, como se sugiere en esta publicación , es mencionar la versión pipcomo:

pip install -Iv MySQL_python==1.2.2

es decir, use ==y mencione el número de versión para instalar solo esa versión. -I, --ignore-installedignora los paquetes ya instalados.

Srikar Appalaraju avatar Apr 04 '2016 09:04 Srikar Appalaraju

Para instalar una versión específica del paquete Python, ya sea la primera vez, una actualización o una degradación, utilice:

pip install --force-reinstall MySQL_python==1.2.4

MySQL_python versión 1.2.2 no está disponible, así que utilicé una versión diferente. Para ver todas las versiones de paquetes disponibles de un índice, excluya la versión:

pip install MySQL_python==
Zach Weg avatar Apr 05 '2018 07:04 Zach Weg

Creo que si ya tiene un paquete instalado, pip no lo sobrescribirá con otra versión. Úselo -Ipara ignorar versiones anteriores.

dappawit avatar Mar 07 '2011 23:03 dappawit