Pips Cache entfernen?


443

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

 pip install psycopg2

Anstatt:

 pip install psycopg2==2.4.1

Das installiert 2.4.4 anstelle der früheren Version.

Selbst nachdem ich psycopg2 deinstalliert und versucht habe, es mit der richtigen Version neu zu installieren, scheint es, dass pip den Cache, den es beim ersten Mal heruntergeladen hat, wieder verwendet.

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


4
Die aktuellste Antwort (veröffentlicht von einem Pip-Betreuer) lautet stackoverflow.com/a/61762308/1931274 .
Pradyunsg

Antworten:


507

Wenn Sie pip 6.0 oder neuer verwenden, versuchen Sie, die --no-cache-dirOption hinzuzufügen .

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


8
Ich habe in ~ / .pip gesucht, aber es ist ein leeres Verzeichnis. Ihr Tipp zu --ignore-install hat es geschafft!
Geuis

7
Unter OSX musste ich die pip-bezogenen Verzeichnisse in$TMPDIR
Bryan P

2
Wenn Sie virtualenv verwenden, müssen Sie möglicherweise envs / {yourenvsname} / build / {packageinquestion} dir ...
Vajk Hermecz

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

2
Sie müssen python -m pip install -U pipunter Windows tun . (Es kann nicht aktualisiert werden, da die pip.exeDatei sonst
gesperrt wird

456

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

Linux und Unix

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

OS X.

~/Library/Caches/pip

Windows

%LocalAppData%\pip\Cache

6
Es ist verrückt, dass die drei besten Antworten die Frage nicht wirklich beantworten, und dies ist die erste, die dies tut.
AmphotericLewisAcid

Die aktuellste Antwort (veröffentlicht von einem Pip-Betreuer) lautet stackoverflow.com/a/61762308/1931274 . Der beste Ansatz ist jetzt pip cache purge.
Pradyunsg

104

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

Ab Version 6.0 bietet pip einen standardmäßig Cache, der ähnlich wie der eines Webbrowsers funktioniert. Während der Cache standardmäßig aktiviert ist und standardmäßig das Richtige tut, können Sie den Cache deaktivieren und mithilfe der --no-cache-dir Option immer auf PyPI zugreifen .


2
Dies ist die richtige Antwort ... der Link zeigt auch, wo pip den Cache unter Linux, Windows und OS X
versteckt.

3
Wenn Sie das "fehlerhafte" Objekt aus Ihrem Cache entfernen möchten, sehen Sie sich auf der Seite den Speicherort der Cache-Datei an und "suchen" Sie das fehlerhafte Paket. Linux ist ~ / .cache / pip, Mac ist ~ / Library / Caches / pip usw. Interessanterweise war psycopg2 auch mein Problempaket, aber es lag daran, dass das vorhandene Paket für eine andere Postgresql-Bibliothek kompiliert wurde, auf der es nicht mehr existiert mein Server.
Chris Cogdon

78

pip kann ein Paket installieren, das den Cache ignoriert

pip --no-cache-dir install scipy

7
@ dafedas Antwort liefert die gleichen Informationen vor 4 Monaten
Foon


17

(Pip Betreuer hier!)

Seit pip 6.0 (im Jahr 2014 zurück!) pip install, pip downloadUnd pip wheelBefehle können gesagt werden , unter Verwendung des Cache mit dem vermeiden --no-cache-dirOption. (zB pip install --no-cache-dir <package>)

Seit pip 10.0 (im Jahr 2018!) Wurde ein pip configBefehl hinzugefügt, mit dem pip so konfiguriert werden kann, dass der Cache immer ignoriert wird. Konfiguriert pip so, dass der Cache pip config set global.cache-dir falsenicht "global" verwendet wird (dh in allen Befehlen).

Seit Pip 20.1 verfügt pip über einen pip cacheBefehl zum Verwalten des Inhalts des Cache von pip.

  • pip cache purge Entfernt alle Raddateien im Cache.
  • pip cache remove matplotlib Entfernt selektiv Dateien, die sich auf eine Matplotlib beziehen, aus dem Cache.

Zusammenfassend bietet pip viele Möglichkeiten, die Verwendung des Caches zu optimieren:

  • pip install --no-cache-dir <package>: Installieren Sie ein Paket, ohne den Cache zu verwenden, nur für diesen Lauf.
  • pip config set global.cache-dir false: konfiguriere pip so, dass der Cache nicht "global" verwendet wird (in allen Befehlen)
  • pip cache remove matplotlib: Entfernt alle Raddateien, die sich auf matplotlib beziehen, aus dem Cache von pip.
  • pip cache purge: um alle Dateien aus dem Cache von pip zu löschen.

Das in der Frage erwähnte spezifische Problem "Installation der falschen Version aufgrund von Caching" wurde in Pip 1.4 behoben (bereits 2013!):

Behebung einer Reihe von Problemen im Zusammenhang mit der Bereinigung und Nichtverwendung von Build-Verzeichnissen. (# 413, # 709, # 634, # 602, # 939, # 865, # 948)


10

Wenn Sie die --no-cache-dirOption standardmäßig festlegen möchten, können Sie Folgendes eingeben pip.conf:

[global]
no-cache-dir = false

Der Speicherort pip.confhängt von Ihrem Betriebssystem ab. Weitere Informationen finden Sie in der Dokumentation .


9

Ich hatte gerade ein ähnliches Problem und stellte fest, dass die einzige Möglichkeit, pip zum Aktualisieren des Pakets zu bewegen, darin bestand, das $PWD/build( %CD%\buildunter Windows) Verzeichnis zu löschen, das möglicherweise von einer zuvor nicht abgeschlossenen Installation oder einer früheren Version von pip übrig geblieben war (es löscht jetzt das Verzeichnisse nach erfolgreicher Installation erstellen).


6

Unter Archlinux befindet sich der Pip-Cache unter ~ / .cache / pip. Ich könnte mein Problem lösen, indem ich den darin enthaltenen http-Ordner entferne.


6

Auf meinem Mac musste ich das Cache-Verzeichnis entfernen ~/Library/Caches/pip/




3

Wenn Sie virtualenv verwenden, suchen Sie das buildVerzeichnis unter dem Stammverzeichnis Ihrer Umgebung.


3

Ich musste% TEMP% \ pip-build unter Windows 7 löschen


1
Danke + 1. Ich verwende auch Windows 7 und habe den Ordner unter meinem Ordner% TEMP% \ pip gefunden. Der% TEMP% wird in Ihren Umgebungsvariablen definiert, wenn jemand unsicher ist.
Simon


0

Eine bessere Möglichkeit besteht darin, den Cache zu löschen und neu zu erstellen. Auf diese Weise wird beim erneuten Installieren für eine andere virtuelle Umgebung der Cache verwendet, anstatt jedes Mal bei der Installation erstellt zu werden.

Wenn Sie es beispielsweise installieren, wird angezeigt, dass ein zwischengespeichertes Rad verwendet wird.

Processing <some_prefix>/Library/Caches/pip/wheels/d0/c4/e4/e49fd07bca8dda00dd6b4bbc606aa05a25aacb00d45747a47a/horovod-0.19.3-cp37-cp37m-macosx_10_9_x86_64.wh

Löschen Sie einfach diese und starten Sie Ihre Installation neu.


-2

(...) es scheint, dass pip den Cache wiederverwendet (...)

Ich bin mir ziemlich sicher, dass das nicht passiert. Pip hat (fälschlicherweise) das Build-Verzeichnis und nicht den Cache wiederverwendet. Dies wurde in Version 1.4 von pip behoben, die am 23.07.2013 veröffentlicht wurde.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.