Ich habe gerade eine neue Version meines Pakets auf PyPi (1.2.1.0-r4) hochgeladen: Ich kann die Egg-Datei herunterladen und mit easy_install installieren, und die Version wird korrekt ausgecheckt. Wenn ich jedoch versuche, mit pip zu installieren, wird stattdessen Version 1.1.0.0 installiert. Selbst wenn ich die Version, mit der piped werden soll pip install -Iv tome==1.2.1.0-r4
, explizit spezifiziere , erhalte ich die folgende Meldung: Requested tome==1.2.1.0-r4, but installing version 1.1.0.0
aber ich verstehe nicht warum.
Ich habe zweimal überprüft parse_version
und bestätigt, dass die Versionszeichenfolge in 1.2.1 größer ist als die in 1.1.0, wie gezeigt:
>>> from pkg_resources import parse_version as pv
>>> pv('1.1.0.0') < pv('1.2.1.0-r4')
True
>>>
Irgendeine Idee, warum stattdessen 1.1.0 installiert wird?
python
pip
setuptools
brianmearns
quelle
quelle
pip install -Iv tome==1.2.1.0-r4
installiert für mich (gemäß den Nachrichten undpip freeze
dem Pakettome==1.2.1.0-r4
.-U
Antworten:
Dies ist eine ausgezeichnete Frage. Ich habe ewig gebraucht, um es herauszufinden. Dies ist die Lösung, die für mich funktioniert:
Wenn
pip
Sie eine lokale Version des Pakets finden können,pip
werden Sie anscheinend die lokalen Versionen den Remote-Versionen vorziehen. Ich habe sogar meinen Computer vom Internet getrennt und es erneut versucht - alspip
das Paket noch erfolgreich installiert wurde und ich mich nicht einmal beschwerte, war die Quelle offensichtlich lokal.Der wirklich verwirrende Teil in meinem Fall war, dass
pip
die neueren Versionen auf pypi gefunden , gemeldet und dann trotzdem die ältere Version neu installiert wurden ... arggh. Außerdem hat es mir nicht gesagt, was es tat und warum.Wie habe ich dieses Problem gelöst?
Sie können
pip
mit dem-v
Flag eine ausführliche Ausgabe geben ... aber eine reicht nicht aus. Ich habe die Hilfe RTFM-bearbeitet, die besagt, dass Sie-v
mehrere Male bis zu 3x für eine ausführlichere Ausgabe tun können . So tat ich:Dann habe ich die Ausgabe durchgesehen. Eine Zeile fiel mir auf:
Ich habe dieses Verzeichnis gelöscht und danach die
pip
neueste Version von pypi installiert.quelle
-vvv
anstelle von verwenden-v -v -v
.--no-cache-dir
Flag verwenden, anstatt die Datei in zu suchen und zu löschen/tmp/
.Versuchen Sie erneut, das Paket herunterzuladen mit:
pip install --no-cache-dir --upgrade <package>
quelle
pip search
neuer ist.Dank Marcus Smith , der hervorragende Arbeit als Instandhalter von Pip leistet, wurde dies in Version 1.4 von Pip behoben, die am 23.07.2013 veröffentlicht wurde.
Relevante Informationen aus dem Changelog für diese Version
quelle
pip install -U pip
Ich habe hier festgestellt , dass es einen bekannten Fehler in pip gibt, der die Version nicht überprüft, wenn es ein Build-Verzeichnis mit entpackten Quellen gibt. Ich habe dies auf meinem problematischen Paket überprüft und nach dem Löschen seiner Quellen aus dem Build-Verzeichnis pip die erforderliche Version installiert.
quelle
Wenn Sie eine
pip
Version verwenden, die mit einigen Distributionspaketen geliefert wird (z. B. Ubuntu python-pip), müssen Sie möglicherweise eine neuerepip
Version installieren :Update
pip
auf die neueste Version:sudo pip install -U pip
Bei "virtualenv" überspringen Sie "sudo":
pip install -U pip
Der folgende Befehl kann erforderlich sein, wenn Ihre Shell etwas wie
-bash: /usr/bin/pip: No such file or directory
nach dempip
Update meldet :hash -d pip
Installieren Sie nun Ihr Paket wie gewohnt:
pip install -U foo
oder
pip install foo==package.version.here
quelle
Ich habe das gleiche Problem beim Aktualisieren von pika 0.9.5 auf 0.9.8. Die einzige Arbeitsweise war die Installation von Tarball :
pip install https://pypi.python.org/packages/source/p/pika/pika-0.9.8.tar.gz
.quelle
Für meinen Fall musste ich den
.pip
Ordner in meinem Home-Verzeichnis löschen und konnte dann spätere Versionen mehrerer Bibliotheken erhalten. Beachten Sie, dass dies unter Linux war.pip --version pip 18.1 from /usr/lib/python2.7/site-packages/pip (python 2.7) virtualenv --version 15.1.0
quelle
Ich habe festgestellt, dass Pip Mikroversionen nicht erkennt, wenn Sie sie verwenden. Zum Beispiel konnten wir Version 1.9.9.1 nicht zum Upgrade bringen.
quelle
In meinem Fall erfüllte die verwendete Python-Version (3.4) nicht die Anforderungen für Django 2.1-Abhängigkeiten (Python> = 3.5).
quelle
In meinem Fall installiere ich ein .tar.gz-Paket von Artifactory, an dem ich viele Aktualisierungen vornehme. Um meine zwischengespeicherten Python-Dateien zu überschreiben und immer das Neueste zu holen / zu installieren, das ich ausführen konnte:
pip install --no-cache-dir --force-reinstall <path/to/tar.gz>
Sie sollten sehen, dass alle erforderlichen Dateien erneut heruntergeladen und installiert werden, anstatt Ihren lokalen Cache zu verwenden.
quelle
In meinem Fall hatte jemand die neueste Version eines Pakets mit python2 veröffentlicht, also versuchte er es
pip3 install
es eine ältere Version packte das hatte mit python3 gebaut.Praktische Dinge, die Sie beim Debuggen überprüfen sollten:
pip install
behauptet wird, die Version nicht finden zu können, prüfenpip search
Sie , ob sie angezeigt werden kann.-py2-
dort klar als Tag gesehen).pip install --no-cache-dir
falls pip sich nicht die Mühe macht, das Internet zu fragen, da Ihre Antwort bereits lokal vorhanden ist.quelle
Ich hatte nicht versionierte Dateien unter der Registerkarte Git in PyCharm versteckt, mit denen installiert wurde
pip install .
, obwohl ich die Dateien nirgendwo anders gesehen hatte.Es hat lange gedauert, es für mich zu finden, und dies in der Hoffnung gepostet, dass es jemand anderem hilft.
quelle