Wo ist der Pip-Cache-Ordner?

92

Wo befindet sich der Python Pip Cache Ordner? Ich hatte einen Fehler während der Installation und installiere jetzt Pakete mithilfe von Cache-Dateien neu

Wo ist das Verzeichnis? Ich möchte sie für die zukünftige Installation sichern. Ist es möglich ?

Zum Beispiel habe ich diese:

Using cached cssselect-0.9.1.tar.gz

Ich habe Google nach diesem Verzeichnis durchsucht, aber alles, was ich gesehen habe, ist zu lernen, wie man aus einem Ordner installiert. Ich möchte das Standard-Cache-Verzeichnis finden.

Und noch eine Frage: Diese Cache-Dateien bleiben in diesem Verzeichnis oder werden bald entfernt.

Arash Hatami
quelle
1
Das hängt vom Betriebssystem ab.
Martin Konecny
Windows @ MartinKonecny
Arash Hatami
3
Ich glaube, es ist in ~\AppData\Local\pip\cacheWindows.
Fredrik
Es gibt viele Dateien mit unklaren Namen wie '0f4017d43a13156e41129019e85a69fcc2dd34e6904ed88395bb5451' ... kann ich genau die Datei 'cssselect-0.9.1.tar.gz' finden ??? @fredrik
Arash Hatami
2
Ein Cache ist wie in diesem Fall nicht immer für Menschen lesbar.
Fredrik

Antworten:

123

Der Standardspeicherort für das Cache-Verzeichnis hängt vom Betriebssystem ab:

Unix

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

Mac OS

~ / Library / Caches / pip

Windows

<CSIDL_LOCAL_APPDATA> \ pip \ Cache

Rad-Cache

pip liest aus den Unterverzeichnisrädern im pip-Cache-Verzeichnis und verwendet alle dort gefundenen Pakete. [snip]

https://pip.pypa.io/en/latest/reference/pip_install/#caching

Der Speicherort des Cache-Verzeichnisses kann über die Befehlszeilenoption geändert werden --cache-dir.

ptim
quelle
7
<CSIDL_LOCAL_APPDATA> ==% LOCALAPPDATA%
Winand
% LOCALAPPDATA% \ pip \ Cache
Alex78191
1
$XDG_CACHE_HOMEist leer. find ~/.cache/pip | grep -i tensorShows tensorflow_determinismund silence_tensorflowRäder, aber nicht tensorflow-gpu. Noch pip install tensorflow-gpusagt Using cached https://.../tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl. Wo soll ich sonst nach dieser Datei suchen?
Bers
(Ich habe auch heruntergeladen tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whlund nach Duplikaten gesucht fdupes, konnte aber keine finden ...)
bers
24

Pythonischer und plattformübergreifender Weg:

import pip
from distutils.version import LooseVersion

if LooseVersion(pip.__version__) < LooseVersion('10'):
    # older pip version
    from pip.utils.appdirs import user_cache_dir
else:
    # newer pip version
    from pip._internal.utils.appdirs import user_cache_dir

print(user_cache_dir('pip'))
print(user_cache_dir('wheel'))

Unter der Haube normalisiert es Pfade, verwaltet verschiedene Speicherorte für exotische und gewöhnliche Betriebssysteme und Plattformen und führt eine Windows-Registrierungssuche durch.

Es kann erwähnenswert sein, dass, wenn Sie verschiedene Python-Versionen installiert haben, 2.x'es und 3.x'es, alle denselben Cache-Speicherort haben.

Rabash
quelle
5
ModuleNotFoundError: No module named 'pip.utils', pip 10.0.1 unter Ubuntu.
Gringo Suave
1
Wenn Sie ein pipeigenes Cache-Verzeichnis haben from pip._internal.locations import USER_CACHE_DIRpython -c "from pip._internal.locations import USER_CACHE_DIR; print(USER_CACHE_DIR)"
möchten, können
Bitte gehen Sie nicht in _internalund holen Sie Werte. Die Interna von pip dürfen nicht wie eine Bibliothek verwendet werden und können sich ändern. pip cache dirAuf Pip 20.1 und höher ist der beste Weg, um diesen Wert zu erhalten.
Pradyunsg
8

Sie können das zugehörige Rad sichern , anstatt zu versuchen, eine Sicherung des Cache-Ordners durchzuführen.

Laden Sie das Rad für csselect von Version 0.9.1 herunter in /tmp/wheelhouse:

pip wheel --wheel-dir=/tmp/wheelhouse cssselect==0.9.1

Installieren Sie das heruntergeladene Rad:

pip install /tmp/wheelhouse/cssselect-0.9.1-py2-none-any.whl
fredrik
quelle
Wie stabil / vorhersehbar ist der cssselect-0.9.1-py2-none-any.whlDateiname?
Blaise
Hängt davon ab, was die Betreuer in ihrer setup.py beim Verpacken tun.
Fredrik