Pourquoi est-pip de l'installation d'une ancienne version de mon colis?
Je viens de téléchargé une nouvelle version de mon paquet de PyPi (1.2.1.0-r4): je peux télécharger l'œuf fichier et l'installer avec easy_install, et la version vérifie correctement. Mais quand j'essaie de l'installer à l'aide de pip, il installe la version 1.1.0.0 à la place. Même si j'ai explicitement spécifier la version de pip avec pip install -Iv tome==1.2.1.0-r4
, j'obtiens ce message: Requested tome==1.2.1.0-r4, but installing version 1.1.0.0
, mais je ne comprends pas pourquoi.
J'ai vérifié avec parse_version
et a confirmé que la chaîne de version sur 1.2.1 est plus grande que sur la version 1.1.0 comme indiqué:
>>> from pkg_resources import parse_version as pv
>>> pv('1.1.0.0') < pv('1.2.1.0-r4')
True
>>>
Donc aucune idée de pourquoi c'est choisir d'installer la version 1.1.0 à la place?
- Ne pouvaient pas se reproduire.
pip install -Iv tome==1.2.1.0-r4
installe pour moi (selon les messages etpip freeze
le paquettome==1.2.1.0-r4
. - Il est probablement dans votre chemin quelque part? Essayez avec
-U
- Hm..bon, c'est intéressant. J'ai essayé de le désinstaller avec le pip, je crois que je vais creuser un peu plus et assurez-vous qu'il est tout parti. Merci pour le contrôle!
- Ressemble à une sorte de bug dans le programme pep. J'ai un problème similaire, mais je ne peux pas installer une version plus ancienne de django-tastypie.
Vous devez vous connecter pour publier un commentaire.
C'est une excellente question. Il m'a fallu une éternité pour le comprendre. C'est la solution qui fonctionne pour moi:
Apparemment, si
pip
pouvez trouver une version locale de l'emballage,pip
préfèrent les versions locales à distance. J'ai même débranché mon ordinateur à partir d'internet et essayé de nouveau -- quandpip
encore installé le package avec succès, et n'a même pas se plaindre, la source était évidemment locaux.La vraiment déroutant partie, dans mon cas, est que
pip
trouvé les versions les plus récentes sur pypi, a rapporté, et ensuite allé de l'avant et ré-installé la version la plus ancienne de toute façon ... arggh. Aussi, il ne m'a pas dit ce qu'il fait, et pourquoi.Alors, comment ai-je résoudre ce problème?
Vous pouvez obtenir
pip
pour donner une sortie détaillée à l'aide de la-v
drapeau ... mais on n'est pas assez. Je RTFM-ed de l'aide, qui dit que vous pouvez faire-v
plusieurs fois, jusqu'à 3 fois, pour plus d'informations détaillées. J'ai donc fait:Puis j'ai regardé à travers la sortie. Une ligne qui a attiré mon attention:
J'ai supprimé le répertoire en question, après quoi
pip
installé la dernière version de pypi.-vvv
au lieu de-v -v -v
.--no-cache-dir
drapeau à la place de la chasse et de la suppression d'un fichier dans/tmp/
.Essayer de forcer la télécharger de nouveau le paquet avec:
Grâce à Marcus Smith, qui fait un travail fantastique en tant que maintener de pip, cela a été corrigé dans la version 1.4 de pip qui a été publié sur 2013-07-23.
Informations pertinentes à partir de changelog pour cette version
pip install -U pip
J'ai trouvé ici qu'il y est un bug connu de la pip de ne pas vérifier la version si il y a un répertoire de construction avec décompressé les sources. J'ai vérifié sur mon troublant paquet et après la suppression de ses sources de répertoire de construction pip installé la version requise.
Si vous utilisez un
pip
version qui vient avec certains packages de distribution (ex. Ubuntu python-pip), vous devrez peut-être installer une nouvellepip
version:Mise à jour
pip
à la dernière version:sudo pip install -U pip
En cas de "virtualenv", skip "sudo":
pip install -U pip
Commande suivante peut être nécessaire, si votre shell rapport à quelque chose comme
-bash: /usr/bin/pip: No such file or directory
aprèspip
mise à jour:hash -d pip
Maintenant installer votre paquet comme d'habitude:
pip install -U foo
ou
pip install foo==package.version.here
Eu le même problème de mise à jour pika 0.9.5 à 0.9.8. La seule façon de travailler a été d'installer à partir de l'archive:
pip install https://pypi.python.org/packages/source/p/pika/pika-0.9.8.tar.gz
.J'ai trouvé que si vous utilisez microversions, pip ne semble pas le reconnaître. Par exemple, nous n'avons pas pu obtenir la version 1.9.9.1 de mise à niveau.
Dans mon cas la version de python utilisée (3.4) ne l'a pas satisfait Django 2.1 les dépendances des exigences (python >= 3.5).
Pour mon cas, j'ai dû supprimer le
.pip
dossier dans mon répertoire home et ensuite, j'ai été en mesure d'obtenir les versions ultérieures de plusieurs bibliothèques. Notez que ce qui était sur linux.