Gdzie jest folder pamięci podręcznej pip

93

Gdzie jest Python pip folder pamięci podręcznej ? Wystąpił błąd podczas instalacji i teraz ponownie instaluję pakiety przy użyciu plików pamięci podręcznej

Gdzie jest ten katalog? Chcę je wykonać w celu zainstalowania w przyszłości. Czy to możliwe ?

Na przykład mam ten:

Using cached cssselect-0.9.1.tar.gz

Szukałem google w poszukiwaniu tego katalogu, ale wszystko, co widziałem, to nauczenie się instalowania z folderu, chcę znaleźć domyślny katalog pamięci podręcznej.

I kolejne pytanie, te pliki pamięci podręcznej pozostaną w tym katalogu lub wkrótce zostaną usunięte?

Arash Hatami
źródło
1
To zależy od systemu operacyjnego.
Martin Konecny
windows @MartinKonecny
Arash Hatami
3
Wierzę, że jest w ~\AppData\Local\pip\cachesystemie Windows.
fredrik
istnieje wiele plików o niejasnych nazwach, takich jak „0f4017d43a13156e41129019e85a69fcc2dd34e6904ed88395bb5451” ... czy mogę znaleźć dokładnie plik „cssselect-0.9.1.tar.gz” ??? @fredrik
Arash Hatami
2
Pamięć podręczna nie zawsze jest czytelna dla człowieka, jak w tym przypadku.
fredrik

Odpowiedzi:

33

To zależy od systemu operacyjnego.

W przypadku pip 20.1 lub nowszego możesz go znaleźć za pomocą:

pip cache dir

Na przykład z macOS:

$ pip cache dir
/Users/hugo/Library/Caches/pip

Dokumenty:

Hugo
źródło
Tak ... To stare pytanie (około 4 lat: D)
Arash Hatami
1
Stare, ale wciąż aktualne! github.com/hugovk/pypistats/pull/105/commits/…
Hugo
Zobacz także PIP_CACHE_DIRzmienną środowiskową, aby ustawić ten katalog.
Alex Povel
123

Domyślna lokalizacja katalogu pamięci podręcznej zależy od systemu operacyjnego:

Unix

~ / .cache / pip i szanuje katalog XDG_CACHE_HOME.

System operacyjny Mac

~ / Library / Caches / pip

Windows

<CSIDL_LOCAL_APPDATA> \ pip \ Cache

Wheel Cache

pip czyta z kół podkatalogów w katalogu pamięci podręcznej pip i używa wszelkich znalezionych tam pakietów. [fantastyczna okazja]

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

Lokalizację katalogu pamięci podręcznej można zmienić za pomocą opcji wiersza poleceń --cache-dir.

ptim
źródło
7
<CSIDL_LOCAL_APPDATA> ==% LOCALAPPDATA%
Winand
% LOCALAPPDATA% \ pip \ Cache
Alex78191
1
$XDG_CACHE_HOMEjest pusty. find ~/.cache/pip | grep -i tensorpokazy tensorflow_determinismi silence_tensorflowkoła, ale nie tensorflow-gpu. Jeszcze pip install tensorflow-gpumówi Using cached https://.../tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl. Gdzie jeszcze mam szukać tego pliku?
bers
(Pobrałem również tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whli sprawdziłem fdupes, czy nie ma duplikatów za pomocą , ale nie mogłem znaleźć żadnego ...)
bers
24

Sposób Pythonic i wieloplatformowy:

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'))

Pod maską normalizuje ścieżki, zarządza różnymi lokalizacjami dla egzotycznych i zwykłych systemów operacyjnych i platform, przeprowadza wyszukiwanie w rejestrze systemu Windows.

Warto wspomnieć, że jeśli masz zainstalowane różne wersje Pythona, 2.x'es i 3.x'es, wszystkie mają tę samą lokalizację pamięci podręcznej.

Rabash
źródło
5
ModuleNotFoundError: No module named 'pip.utils', pip 10.0.1 na Ubuntu.
Gringo Suave
1
Jeśli chcesz mieć pipwłasny katalog pamięci podręcznej, możesz po prostu użyć from pip._internal.locations import USER_CACHE_DIRlub python -c "from pip._internal.locations import USER_CACHE_DIR; print(USER_CACHE_DIR)"przechwytywać rzeczy w skrypcie itp.
ryanjdillon
Proszę nie wchodzić _internali nie pobierać wartości. Elementy wewnętrzne pip nie mają być używane jak biblioteka i mogą ulec zmianie. pip cache dirna pip 20.1 i nowszych jest najlepszym sposobem na uzyskanie tej wartości.
pradyunsg
8

Możesz wykonać kopię zapasową powiązanego koła zamiast próbować wykonać kopię zapasową folderu pamięci podręcznej.

Pobierz koło dla csselect wersji 0.9.1 do /tmp/wheelhouse:

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

Zainstaluj pobrane koło:

pip install /tmp/wheelhouse/cssselect-0.9.1-py2-none-any.whl
fredrik
źródło
Jak stabilna / przewidywalna jest cssselect-0.9.1-py2-none-any.whlnazwa pliku?
Blaise,
Zależy od tego, co opiekunowie robią w swoim setup.py podczas pakowania.
fredrik