pip verwendet eine falsche zwischengespeicherte Paketversion anstelle der vom Benutzer angegebenen Version

Lesezeit: 5 Minuten

Benutzer-Avatar
Geuis

Ich muss speziell psycopg2 v2.4.1 installieren. Ich habe aus Versehen gemacht:

 pip install psycopg2

Anstatt:

 pip install psycopg2==2.4.1

Das installiert 2.4.4 anstelle der früheren Version.

Jetzt, selbst nachdem ich psycopg2 deinstalliert und versucht habe, es mit der richtigen Version neu zu installieren, scheint es, dass Pip den Cache wiederverwendet, den es beim ersten Mal heruntergeladen hat.

Wie kann ich pip zwingen, seinen Download-Cache zu leeren und die spezifische Version zu verwenden, die ich in den Befehl einschließe?

  • Die derzeit aktuellste Antwort (gepostet von einem Pip-Maintainer) ist stackoverflow.com/a/61762308/1931274.

    – pradyunsg

    12. Mai 2020 um 22:52 Uhr

Benutzer-Avatar
sholsapp

Wenn Sie pip 6.0 oder neuer verwenden, versuchen Sie, die hinzuzufügen --no-cache-dir Möglichkeit (Quelle).

Wenn Sie Pip älter als Pip 6.0 verwenden, aktualisieren Sie es mit pip install -U pip.

  • Ich habe in ~/.pip nachgesehen, aber es ist ein leeres Verzeichnis. Ihr Tipp auf –ignore-installed hat es geschafft!

    – Geis

    1. März 2012 um 4:40 Uhr

  • Unter OSX musste ich die pip-bezogenen Verzeichnisse in löschen $TMPDIR

    – Bryan P

    14. April 2013 um 8:25 Uhr

  • Wenn Sie virtualenv verwenden, müssen Sie möglicherweise envs/{yourenvsname}/build/{packageinquestion} dir löschen…

    – Vajk Hermecz

    28. Oktober 2013 um 19:17 Uhr

  • In Windows: Ich habe gesehen, dass sich das Pip-Caching-Verzeichnis in ~\AppData\Local\pip\cache befindet

    – Quecksilber

    6. August 2015 um 14:54 Uhr

  • Diese Antwort ist nur teilweise richtig. –no-cache-dir löscht den Inhalt des Cache-Ordners nicht.

    – NEIN NEIN NEIN NEIN NEIN

    3. Januar 2021 um 14:30 Uhr

Benutzer-Avatar
Dr Manhattan

Löschen Sie gegebenenfalls das Cache-Verzeichnis für Ihr System

Linux und Unix

~/.cache/pip  # and it respects the XDG_CACHE_HOME directory.

OSX

~/Library/Caches/pip

Fenster

%LocalAppData%\pip\Cache

AKTUALISIEREN

Mit Pip 20.1 oder später können Sie den vollständigen Pfad für Ihr Betriebssystem leicht finden, indem Sie Folgendes in die Befehlszeile eingeben:

pip cache dir

Beispielausgabe auf meiner Ubuntu-Installation:

➜ pip3 cache dir
/home/tawanda/.cache/pip

  • Die derzeit aktuellste Antwort (gepostet von einem Pip-Maintainer) ist stackoverflow.com/a/61762308/1931274. Der beste Ansatz ist jetzt pip cache purge.

    – pradyunsg

    12. Mai 2020 um 22:53 Uhr

  • pip cache purge funktioniert nur auf Pip 20.1 gemäß der Antwort, auf die Sie verlinken. Diese Antwort scheint für alle zu gelten pip Versionen und allen Plattformen, was es allgemein nützlicher machen würde, aber ich weiß nicht, ob das der Fall ist.

    – Hannes

    6. Oktober 2020 um 20:10 Uhr


Benutzer-Avatar
pradyunsg

Mit Pip 20.1 oder höher können Sie Folgendes tun:

  • pip cache remove matplotlib: Entfernt alle Wheel-Dateien, die sich auf Matplotlib beziehen, aus Pips Cache.
  • pip cache purge: um alle Wheel-Dateien aus Pips Cache zu löschen.
  • pip cache dir: um den Ort des Caches zu erhalten.

Wenn Sie den Pip-Cache aus irgendeinem Grund nicht verwenden möchten (was laut die offiziellen Dokumente), Ihre Optionen sind:

  • pip install --no-cache-dir <package>: Installieren Sie ein Paket, ohne den Cache zu verwenden, nur für diesen Lauf.
  • pip config set global.no-cache-dir false: pip so konfigurieren, dass der Cache nicht “global” verwendet wird (in allen Befehlen).

Etwas Geschichte rund um diese Frage (setzt Pip-Maintainer-Hut auf):

Das in der Frage erwähnte spezifische Problem „Installieren der falschen Version aufgrund von Caching“ wurde in Pip 1.4 behoben, damals im Jahr 2013!)

Beheben Sie eine Reihe von Problemen im Zusammenhang mit der Bereinigung und Nichtwiederverwendung von Build-Verzeichnissen. (Nr. 413, Nr. 709, Nr. 634, Nr. 602, Nr. 939, Nr. 865, Nr. 948)

Seit Pip 6.0 (damals im Jahr 2014!), pip install, pip download und pip wheel Befehle können angewiesen werden, die Verwendung des Caches mit dem zu vermeiden --no-cache-dir Möglichkeit. (z.B: pip install --no-cache-dir <package>)

Damals, ja, vorbei --no-cache-dir war die einzige Möglichkeit, diesen Fehler zu vermeiden. Also … es ist ein bisschen unglücklich, dass dies das beste Suchergebnis für “pip cache remove” ist. 🙂

Seit Pip 10.0 (damals im Jahr 2018!), a pip config Befehl hinzugefügt, mit dem pip so konfiguriert werden kann, dass der Cache immer ignoriert wird. Dies war immer möglich, indem die relevanten Dateien manuell bearbeitet wurden, aber dies brachte diese Fähigkeit auf die Befehlszeile. Details zu den Konfigurationsmechanismen von pip sind verfügbar hier.

Seit Pip 20.1 hat Pip eine pip cache Befehl zum Verwalten des Inhalts von Pips Cache.

  • Ich habe Pip 20.1.1, aber wenn ich versuche, den Pip-Cache zu löschen, erhalte ich den nächsten Fehler: ERROR: No matching packages aber ich habe schon viele verschiedene Pakete installiert

    – Michail_Sam

    16. Juni 2020 um 10:59 Uhr

  • @mikhail_sam versuchen pip cache list Wenn es nichts anzeigt, dann haben Sie nichts zwischengespeichert.

    – Robert Lugg

    3. September 2020 um 10:03 Uhr

  • Für mich pip cache purge und pip cache list schlagen vor, dass der Cache leer ist, aber du -hs ~/.cache/pip zeigt 242MB an.

    – Carl

    8. Oktober 2020 um 13:26 Uhr

  • Da ist ein Tippfehler drin pip config set global.cache-dir false. Es sollte sein pip config set global.no-cache-dir false.

    – Darren

    27. Januar 2021 um 9:20 Uhr

  • Ich erhalte eine Fehlermeldung ERROR: unknown command "cache" - maybe you meant "check"

    – Alex

    4. Januar um 12:52

Benutzer-Avatar
dafeda

Aus Dokumentation unter https://pip.pypa.io/en/latest/reference/pip_install.html#caching:

Ab v6.0 bietet pip einen standardmäßig aktivierten Cache, der ähnlich wie ein Webbrowser funktioniert. Während der Cache standardmäßig aktiviert ist und standardmäßig das Richtige tut, können Sie den Cache deaktivieren und immer auf PyPI zugreifen, indem Sie die verwenden --no-cache-dir
Möglichkeit.

Benutzer-Avatar
Yih

pip kann ein Paket installieren, das den Cache ignoriert, wie hier

pip --no-cache-dir install scipy

  • Die Antwort von @dafeda enthält vor 4 Monaten dieselben Informationen

    – Fon

    8. April 2015 um 12:00 Uhr

Benutzer-Avatar
Bence Mélykúti

Seit Pip 20.1b1das am 21. April 2020 veröffentlicht und „added pip cache Befehl zum Inspizieren/Verwalten des Radcaches von Pip”, ist es möglich, diesen Befehl auszugeben:

pip cache purge

Das Nachschlagewerk ist hier:
https://pip.pypa.io/en/stable/reference/pip_cache/

Die entsprechende Pull-Request ist hier.

  • Die Antwort von @dafeda enthält vor 4 Monaten dieselben Informationen

    – Fon

    8. April 2015 um 12:00 Uhr

Auf Ubuntu musste ich löschen /tmp/pip-build-root.

  • Eigentlich /tmp/pip-build-%username_that_running_pip%

    – Alexey Sviridov

    8. Januar 2014 um 10:08 Uhr

  • Auf Ubuntu 14 war es /tmp/pip_build_root/ (Unterstriche beachten)

    – Emil Stenström

    25. April 2014 um 15:05 Uhr


1011210cookie-checkpip verwendet eine falsche zwischengespeicherte Paketversion anstelle der vom Benutzer angegebenen Version

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy