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?

Geuis
quelle
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.

sholsapp
quelle
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
Dr. Manhattan
quelle
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 .

Dafeda
quelle
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
Yihe
quelle
7
@ dafedas Antwort liefert die gleichen Informationen vor 4 Monaten
Foon
30

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

Jace Browning
quelle
2
Eigentlich / tmp / pip-build-% username_that_running_pip%
Alexey Sviridov
2
Auf Ubuntu 14 war es /tmp/pip_build_root/(Anmerkung unterstreicht)
Emil Stenström
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)

pradyunsg
quelle
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 .

Rotareti
quelle
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).

Dhobbs
quelle
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.

eneepo
quelle
6

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

Matlads
quelle
4

Unter Windows 7 musste ich löschen %HOMEPATH%/pip.

Jace Browning
quelle
3

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

Vajk Hermecz
quelle
3

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

Mikhail M.
quelle
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
2

Unter Mac OS (Mavericks) musste ich löschen /tmp/pip-build/

Marcelo Soares
quelle
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.

Izana
quelle
-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.

Piotr Dobrogost
quelle