1802 votes

Installation d'une version spécifique du paquet avec pip

J'essaye d'installer la version 1.2.2 de MySQL_python en utilisant un nouveau virtualenv créé avec l'option --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 essayé :

pip install MySQL_python==1.2.2

Cependant, une fois installé, il affiche toujours MySQL_python-1.2.3-py2.6.egg-info dans les paquets de sites. S'agit-il d'un problème spécifique à ce paquet, ou est-ce que je fais quelque chose de mal ?

23 votes

Merci pour l'astuce, cela a fonctionné pour moi pour installer une ancienne version d'openpyxl via pip install MySQL_python==1.8.9

4 votes

Oui, cela a également fonctionné pour les pandas, merci : pip install -Iv pandas==0.12.0

1 votes

A également fonctionné pour moi : pip install xvfbwrapper==0.2.4

1296voto

Mahmoud Abdelkader Points 5622

TL;DR :

  • pip install -Iv (c'est-à-dire pip install -Iv MySQL_python==1.2.2 )

Ce que ces options signifient :

  • -I signifie --ignore-installed qui ignorera les paquets installés, en les écrasant.
  • -v est pour verbeux. Vous pouvez combiner pour encore plus de verbosité (i.e. -vv ) jusqu'à 3 fois (par ex. -Ivvv ).

Pour plus d'informations, voir pip install --help

D'abord, 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, soit utiliser la méthode suivante pip install -I MySQL_python==1.2.2

Cependant, vous découvrirez rapidement que cela ne fonctionne pas. Si vous regardez le journal d'installation de pip, ou si vous faites un 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.2

Le lien de téléchargement s'arrête à 404 et les liens de l'URL de secours sont redirigés à l'infini en raison de la récente mise à jour de sourceforge.net et de l'URL périmée de PyPI.

Pour installer correctement le pilote, vous pouvez donc suivre les étapes suivantes :

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

1 votes

Il ne devrait pas y avoir de problème pour avoir plusieurs versions, c'est le but de créer de nouveaux dossiers pour chaque version et d'utiliser des fichiers .pth.

3 votes

Cela installe la version correcte et c'est donc la réponse à cette question - merci pour votre aide. Je rencontre un autre problème maintenant : "error : command '/usr/bin/gcc-4.2' failed with exit status 1" pendant la construction de l'extension '_mysql'. Je sais que j'ai GCC, et l'installation de MySQL_python 1.2.3 se déroule sans problème. D'autres personnes ont-elles rencontré ce problème, en particulier avec la version 1.2.2 ?

0 votes

Posez une autre question et posez le message d'erreur que vous obtenez de Pip.

703voto

user1978556 Points 6177

Vous pouvez même utiliser une gamme de versions avec pip install commandement. Quelque chose comme ça :

pip install 'stevedore>=1.3.0,<1.4.0'

Et si le paquet est déjà installé et que vous voulez le rétrograder, ajoutez --force-reinstall comme ça :

pip install 'stevedore>=1.3.0,<1.4.0' --force-reinstall

155 votes

Par exemple : $ pip install 'xkcdpass==1.2.5' --force-reinstall

2 votes

Parfait ! exécuté sur Ubunto 15.04 et il a (automatiquement) remplacé une bibliothèque existante par la version spécifiée. J'ai résolu tous mes problèmes !

2 votes

Je tiens à préciser que pour Python 2, j'ai dû utiliser les guillemets doubles " au lieu de '.

193voto

Srikar Appal Points 26892

Un moyen, comme suggéré dans ce poste est de mentionner la version en pip comme :

pip install -Iv MySQL_python==1.2.2

c.-à-d. utiliser == et mentionnez le numéro de la version pour n'installer que cette version. -I, --ignore-installed ignore les paquets déjà installés.

3 votes

Attention ! J'ai eu l'expérience que cela a installé les différentes versions à côté l'un de l'autre ! Il est également intéressant de noter que, pip list n'était pas au courant de cela, mais conda list était (et afficherait les différentes versions du paquet). Il a aussi complètement confondu Pycharm .

95voto

Zach Weg Points 391

Pour installer une version spécifique du paquet python, que ce soit la première fois, une mise à niveau ou une rétrogradation, utilisez :

pip install --force-reinstall MySQL_python==1.2.4

La version 1.2.2 de MySQL_python n'est pas disponible, j'ai donc utilisé une autre version. Pour afficher toutes les versions disponibles des paquets à partir d'un index, excluez la version :

pip install MySQL_python==

5 votes

Avec pip 10.0.1, c'est la seule solution qui fonctionne. L'option "-I" réinstalle en fait la version précédente.

42voto

dappawit Points 3782

Je crois que si vous avez déjà installé un paquet, pip ne l'écrasera pas avec une autre version. Utilisez -I pour ignorer les versions précédentes.

1 votes

Je ne l'ai pas installé - j'utilise un nouveau virtualenv créé avec l'option --no-site-packages.

3 votes

Ok, donc vous demandez la version 1.2.2 et il installe toujours la 1.2.3, et rien d'autre n'a été installé ? La syntaxe que vous avez utilisée est correcte pour obtenir des versions spécifiques.

0 votes

"en utilisant un virtualenv frais créé avec l'option --no-site-packages" ; vous devrez peut-être le faire précéder de la commande unset PYTHONPATH afin de garder pip de voir vos bibliothèques préinstallées

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X