688 Stimmen

Pip verwendet die falsche zwischengespeicherte Paketversion anstelle der vom Benutzer angegebenen Version

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

pip install psycopg2

Statt:

pip install psycopg2==2.4.1

Das installiert 2.4.4 anstelle der früheren Version.

Auch nachdem ich psycopg2 deinstalliert habe und versuche, es mit der richtigen Version neu zu installieren, scheint pip den Cache zu verwenden, 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 im Befehl angebe?

715voto

sholsapp Punkte 14674

Wenn Sie Pip 6.0 oder neuer verwenden, versuchen Sie, die Option --no-cache-dir hinzuzufügen (Quelle).

Wenn Sie eine ältere Version von Pip als Pip 6.0 verwenden, aktualisieren Sie diese mit pip install -U pip.

640voto

Dr Manhattan Punkte 12319

Leeren Sie das Cache-Verzeichnis entsprechend Ihrem System

Linux und Unix

~/.cache/pip  # und es respektiert das XDG_CACHE_HOME-Verzeichnis.

OS X

~/Library/Caches/pip

Windows

%LocalAppData%\pip\Cache

UPDATE

Mit pip 20.1 oder neuer können Sie den vollständigen Pfad für Ihr Betriebssystem leicht finden, indem Sie dies in der Befehlszeile eingeben:

pip cache dir

Beispiel-Ausgabe auf meiner Ubuntu-Installation:

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

369voto

pradyunsg Punkte 16299

Mit pip 20.1 oder später können Sie Folgendes tun:

  • pip cache remove matplotlib: Entfernt alle Raddateien, die mit matplotlib in Pips Cache verknüpft sind.
  • pip cache purge: Um alle Raddateien aus Pips Cache zu löschen.
  • pip cache dir: Um den Speicherort des Caches zu erhalten.

Wenn Sie aus irgendeinem Grund den pip-Cache nicht verwenden möchten (was keine gute Idee ist, laut den offiziellen Dokumenten), sind Ihre Optionen:

  • pip install --no-cache-dir : Installieren Sie ein Paket, ohne den Cache zu verwenden, nur für diesen Durchlauf.
  • pip config set global.no-cache-dir false: Konfigurieren Sie pip so, dass es den Cache "global" (bei allen Befehlen) nicht verwendet.

Etwas Hintergrund zu dieser Frage (setzt die pip-Betreuer-Mütze auf):

Das spezifische Problem des "Installierens der falschen Version aufgrund des Caching-Problems", das in der Frage erwähnt wird, wurde bereits in pip 1.4 behoben, zurück im Jahr 2013!

Beheben einer Reihe von Problemen im Zusammenhang mit der Aufräumung und dem Nicht-Wiederverwenden von Build-Verzeichnissen. (#413, #709, #634, #602, #939, #865, #948)

Seit pip 6.0 (zurück im Jahr 2014!) können die Befehle pip install, pip download und pip wheel mit der Option --no-cache-dir darauf hingewiesen werden, den Cache nicht zu verwenden. (z.B. pip install --no-cache-dir )

Damals war das Übergeben von --no-cache-dir tatsächlich die einzige Option, um diesen Fehler zu vermeiden. Also... es ist etwas unglücklich, dass dies das Top-Ergebnis der Suche nach "pip cache remove" ist. :)

Seit pip 10.0 (zurück im Jahr 2018!) wurde ein pip config-Befehl hinzugefügt, mit dem konfiguriert werden kann, dass pip den Cache immer ignoriert. Dies war immer möglich, indem man die entsprechenden Dateien manuell bearbeitet hat, aber dies hat die Fähigkeit auf der Befehlszeile hervorgehoben. Details zu Pips Konfigurationsmechanismen finden Sie hier.

Seit pip 20.1 hat pip einen pip cache-Befehl zur Verwaltung des Inhalts des Pips-Caches.

109voto

dafeda Punkte 1317

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

Ab v6.0 bietet pip standardmäßig einen Cache, der ähnlich wie der eines Webbrowsers funktioniert. Obwohl der Cache standardmäßig aktiviert ist und standardmäßig das Richtige macht, können Sie den Cache deaktivieren und jederzeit auf PyPI zugreifen, indem Sie die Option --no-cache-dir verwenden.

95voto

Yihe Punkte 3816

Pip kann ein Paket installieren, ohne den Cache zu beachten, so wie hier

pip --no-cache-dir install scipy

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X