Estoy tratando de instalar la versión 1.2.2 del adaptador MySQL_python, utilizando un nuevo virtualenv creado con la --no-site-packages
opción. La versión actual que se muestra en PyPi es 1.2.3 . ¿Hay alguna forma de instalar la versión anterior? Encontré un artículo que decía que esto debería hacerlo:
pip install MySQL_python==1.2.2
Sin embargo, cuando está instalado, todavía se muestra MySQL_python-1.2.3-py2.6.egg-info
en los paquetes del sitio. ¿Es este un problema específico de este paquete o estoy haciendo algo mal?
pip install MySQL_python==1.8.9
pip install -Iv pandas==0.12.0
Respuestas:
TL; DR:
pip install -Iv
(es decirpip install -Iv MySQL_python==1.2.2
)Primero, veo dos problemas con lo que estás tratando de hacer. Como ya tiene una versión instalada, debe desinstalar el controlador existente actual o usar
pip install -I MySQL_python==1.2.2
Sin embargo, pronto descubrirá que esto no funciona. Si observa el registro de instalación de pip, o si lo hace
pip install -Iv MySQL_python==1.2.2
, encontrará 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.2El enlace de descarga 404 y los enlaces de URL de reserva se redirigen 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:
fuente
Incluso puede usar un rango de versiones con
pip install
comando. Algo como esto:Y si el paquete ya está instalado y desea degradarlo, agregue
--force-reinstall
así:fuente
$ pip install 'xkcdpass==1.2.5' --force-reinstall
Una forma, como se sugiere en esta publicación , es mencionar la versión
pip
como:es decir, use
==
y mencione el número de versión para instalar solo esa versión.-I, --ignore-installed
ignora los paquetes ya instalados.fuente
pip list
no estaba al tanto de eso, peroconda list
estaba (y mostraría las diferentes versiones del paquete). También confundió completamente a Pycharm .Para instalar una versión específica del paquete de Python, ya sea la primera vez, una actualización o un uso anterior:
MySQL_python versión 1.2.2 no está disponible, así que utilicé una versión diferente. Para ver todas las versiones de paquete disponibles de un índice, excluya la versión:
fuente
Creo que si ya tiene un paquete instalado, pip no lo sobrescribirá con otra versión. Use
-I
para ignorar versiones anteriores.fuente
unset PYTHONPATH
de modo de mantenerpip
vean sus bibliotecas preinstaladasA veces, la versión instalada anteriormente se almacena en caché.
Devuelve lo siguiente:
Requisito ya satisfecho: almohada == 5.2.0 en /home/ubuntu/anaconda3/lib/python3.6/site-packages (5.2.0)
Podemos usar --no-cache-dir junto con -I para sobrescribir esto
fuente
Como esto parecía ser un cambio innovador introducido en la versión 10 de pip, bajé a una versión compatible:
Este comando le dice a pip que instale una versión del módulo inferior a la versión 10. Haga esto en un virutalenv para que no arruine la instalación de Python en su sitio.
fuente
Recientemente me encontré con un problema al usar
pip
la-I
bandera que quería documentar en alguna parte:-I
será no desinstalar el paquete existente antes de proceder; simplemente lo instalará sobre el anterior. Esto significa que los archivos que deben eliminarse entre versiones se dejarán en su lugar. Esto puede causar un comportamiento extraño si esos archivos comparten nombres con otros módulos instalados.Por ejemplo, digamos que hay un paquete llamado
package
. En uno depackage
los archivos s, usanimport datetime
. Ahora, en[email protected]
, esto apunta aldatetime
módulo de biblioteca estándar , pero en[email protected]
, agregaron un localdatetime.py
como reemplazo de la versión de biblioteca estándar (por cualquier razón).Ahora digamos que corro
pip install package==3.0.0
, pero luego me doy cuenta de que realmente quería la versión2.0.0
. Si ahora ejecutopip install -I package==2.0.0
, eldatetime.py
archivo anterior no se eliminará, por lo que cualquier llamada aimport datetime
importará el módulo incorrecto.En mi caso, esto se manifestó con errores de sintaxis extraños porque la versión más nueva del paquete agregó un archivo que solo era compatible con Python 3, y cuando bajé las versiones del paquete para admitir Python 2, continué importando el módulo solo Python-3.
En base a esto, argumentaría que desinstalar el paquete anterior siempre es preferible a usar
-I
al actualizar las versiones instaladas del paquete.fuente
Este comando a continuación funcionó para mí
Versión de Python - 2.7
paquete - python-jenkins
comando
$ pip install 'python-jenkins>=1.1.1'
fuente
Hay 2 formas de instalar cualquier paquete con la versión: - A). pip install -Iv package-name == versión B). pip install -v package-name == versión
Para
Aquí, si está utilizando la opción -I durante la instalación (cuando no sabe si el paquete ya está instalado) (como 'pip install -Iv pyreadline == 2. *' o algo así), estaría instalando un nuevo paquete separado con el mismo paquete existente que tiene una versión diferente.
Para B
2. y luego vea lo que ya está instalado por pip list
3.si la lista de paquetes contiene algún paquete que desee instalar con una versión específica, entonces la mejor opción es desinstalar primero el paquete de esta versión, por pip uninstall package-name
4. Y ahora puede continuar para reinstalar el mismo paquete con una versión específica, pip install -v package-name == versión, por ejemplo, pip install -v pyreadline == 2. *
fuente
Si desea actualizar a la última versión y no sabe cuál es la última versión, puede escribir.
pip install MySQL_python --upgrade
Esto actualizará MySQL_python para la última versión disponible, puede usar para cualquier otra versión de paquete.
fuente