J'essaie d'installer la version 1.2.2 de l'adaptateur MySQL_python, en utilisant un nouveau virtualenv créé avec l' --no-site-packages
option. La version actuelle affichée dans PyPi est 1.2.3 . Existe-t-il un moyen d'installer l'ancienne version? J'ai trouvé un article indiquant que cela devrait le faire:
pip install MySQL_python==1.2.2
Une fois installé, cependant, il apparaît toujours MySQL_python-1.2.3-py2.6.egg-info
dans les packages du site. Est-ce un problème spécifique à ce package ou est-ce que je fais quelque chose de mal?
pip install MySQL_python==1.8.9
pip install -Iv pandas==0.12.0
Réponses:
TL; DR:
pip install -Iv
(iepip install -Iv MySQL_python==1.2.2
)Premièrement, je vois deux problèmes avec ce que vous essayez de faire. Puisque vous avez déjà une version installée, vous devez soit désinstaller le pilote existant ou utiliser
pip install -I MySQL_python==1.2.2
Cependant, vous découvrirez bientôt que cela ne fonctionne pas. Si vous regardez le journal d'installation de pip, ou si vous le faites,
pip install -Iv MySQL_python==1.2.2
vous constaterez que le lien URL PyPI ne fonctionne pas pour MySQL_python v1.2.2. Vous pouvez le vérifier ici: http://pypi.python.org/pypi/MySQL-python/1.2.2Le lien de téléchargement 404 et les liens URL de secours sont redirigés à l'infini en raison de la récente mise à niveau de sourceforge.net et de l'URL périmée de PyPI.
Donc, pour installer correctement le pilote, vous pouvez suivre ces étapes:
la source
Vous pouvez même utiliser une plage de versions avec la
pip install
commande. Quelque chose comme ça:Et si le package est déjà installé et que vous souhaitez le rétrograder, ajoutez
--force-reinstall
comme ceci:la source
$ pip install 'xkcdpass==1.2.5' --force-reinstall
Une façon, comme suggéré dans cet article , est de mentionner la version en
pip
tant que:ie utiliser
==
et mentionner le numéro de version pour installer uniquement cette version.-I, --ignore-installed
ignore les packages déjà installés.la source
pip list
n'était pas au courant de cela, mais l'conda list
était (et afficherait les différentes versions du package). Cela a également complètement dérouté Pycharm .Pour installer une version de package python spécifique, que ce soit la première fois, une mise à niveau ou une rétrogradation, utilisez:
La version 1.2.2 de MySQL_python n'est pas disponible, j'ai donc utilisé une version différente. Pour afficher toutes les versions de package disponibles à partir d'un index, excluez la version:
la source
Je crois que si vous avez déjà installé un paquet, pip ne le remplacera pas par une autre version. Utilisez
-I
pour ignorer les versions précédentes.la source
unset PYTHONPATH
afin de ne paspip
voir vos bibliothèques préinstalléesParfois, la version précédemment installée est mise en cache.
Il renvoie les éléments suivants:
Exigence déjà satisfaite: oreiller == 5.2.0 dans /home/ubuntu/anaconda3/lib/python3.6/site-packages (5.2.0)
Nous pouvons utiliser --no-cache-dir avec -I pour remplacer ceci
la source
Comme cela semblait être un changement de rupture introduit dans la version 10 de pip, j'ai rétrogradé vers une version compatible:
Cette commande indique à pip d'installer une version du module inférieure à la version 10. Faites-le dans un virutalenv afin de ne pas bousiller l'installation de Python sur votre site.
la source
J'ai récemment rencontré un problème lors de l'utilisation
pip
du-I
drapeau de que je voulais documenter quelque part:-I
ne pas désinstaller le package existant avant de poursuivre; il suffit de l'installer sur l'ancien. Cela signifie que tous les fichiers qui devraient être supprimés entre les versions seront à la place laissés en place. Cela peut provoquer un comportement étrange si ces fichiers partagent des noms avec d'autres modules installés.Par exemple, supposons qu'il existe un package nommé
package
. Dans l'un despackage
fichiers s, ils utilisentimport datetime
. Maintenant, dans[email protected]
, cela pointe vers ledatetime
module de bibliothèque standard , mais dans[email protected]
, ils ont ajouté un localdatetime.py
en remplacement de la version de bibliothèque standard (pour une raison quelconque).Disons maintenant que je cours
pip install package==3.0.0
, mais réalisez plus tard que je voulais vraiment une version2.0.0
. Si je lance maintenantpip install -I package==2.0.0
, l'anciendatetime.py
fichier ne sera pas supprimé, donc tout appel àimport datetime
importera le mauvais module.Dans mon cas, cela s'est manifesté par d'étranges erreurs de syntaxe car la nouvelle version du package a ajouté un fichier qui n'était compatible qu'avec Python 3, et lorsque j'ai rétrogradé les versions du package pour prendre en charge Python 2, j'ai continué d'importer le module Python-3 uniquement.
Sur cette base, je dirais que la désinstallation de l'ancien package est toujours préférable à l'utilisation
-I
lors de la mise à jour des versions de package installées.la source
Cette commande ci-dessous a fonctionné pour moi
Version Python - 2.7
paquet - python-jenkins
commande -
$ pip install 'python-jenkins>=1.1.1'
la source
Il y a 2 façons d'installer n'importe quel paquet avec la version: - A). pip install -Iv nom-package == version B). pip install -v nom-package == version
Pour un
Ici, si vous utilisez l'option -I lors de l'installation (lorsque vous ne savez pas si le package est déjà installé) (comme 'pip install -Iv pyreadline == 2. *' ou quelque chose), vous installeriez un nouveau package séparé avec le même package existant ayant une version différente.
Pour B
2. puis voyez ce qui est déjà installé par la liste pip
3.si la liste des packages contient un package que vous souhaitez installer avec une version spécifique, la meilleure option consiste à désinstaller le package de cette version en premier, en pipinstall package-name
4.Et maintenant vous pouvez réinstaller le même package avec une version spécifique, par pip install -v nom-package == version par exemple pip install -v pyreadline == 2. *
la source
Si vous souhaitez mettre à jour vers la dernière version et que vous ne savez pas quelle est la dernière version que vous pouvez taper.
pip installer MySQL_python --upgrade
Cela mettra à jour MySQL_python pour la dernière version disponible, vous pouvez l'utiliser pour n'importe quelle autre version de package.
la source