Где находится папка кэша pip

93

Где находится папка кеш-памяти Python pip ? У меня была ошибка во время установки, и теперь я переустанавливаю пакеты, используя файлы кеша

Где этот каталог? Я хочу сделать их резервную копию для установки в будущем. Является ли это возможным ?

Например, у меня есть такой:

Using cached cssselect-0.9.1.tar.gz

Я искал этот каталог в Google, но все, что я видел, - это узнать, как установить из папки, я хочу найти каталог кеша по умолчанию.

И еще вопрос, эти файлы кеша останутся в этом каталоге или скоро будут удалены?

Араш Хатами
источник
1
Это зависит от ОС.
Мартин Конечны
windows @MartinKonecny
Араш Хатами
3
Я считаю, что это есть в ~\AppData\Local\pip\cacheWindows.
Фредрик 03
есть много файлов с нечеткими именами, например '0f4017d43a13156e41129019e85a69fcc2dd34e6904ed88395bb5451' ... могу ли я найти именно файл 'cssselect-0.9.1.tar.gz' ??? @fredrik
Араш Хатами
2
Кэш не всегда доступен для чтения человеком, как в данном случае.
fredrik 03

Ответы:

33

Это зависит от операционной системы.

С pip 20.1 или более поздней версии вы можете найти его с помощью:

pip cache dir

Например, с macOS:

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

Документы:

Хьюго
источник
Да ... Это старый вопрос (около 4 лет: D)
Араш Хатами
1
Старый, но актуальный! github.com/hugovk/pypistats/pull/105/commit/…
Хьюго
См. Также PIP_CACHE_DIRпеременную среды для установки этого каталога.
Alex Povel
123

Расположение по умолчанию для каталога кеша зависит от операционной системы:

Unix

~ / .cache / pip, и он уважает каталог XDG_CACHE_HOME.

macOS

~ / Библиотека / Кеши / пункт

Windows

<CSIDL_LOCAL_APPDATA> \ pip \ Cache

Колесный кэш

pip будет читать из подкаталога wheel в каталоге pip cache и использовать любые найденные там пакеты. [вырезать]

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

Расположение каталога кеша можно изменить с помощью параметра командной строки --cache-dir.

птим
источник
7
<CSIDL_LOCAL_APPDATA> ==% LOCALAPPDATA%
Winand
% LOCALAPPDATA% \ pip \ Cache
Alex78191
1
$XDG_CACHE_HOMEпустой. find ~/.cache/pip | grep -i tensorпоказывает tensorflow_determinismи silence_tensorflowдиски, но нет tensorflow-gpu. Пока что pip install tensorflow-gpuговорит Using cached https://.../tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl. Где еще мне искать этот файл?
Берс
(Я скачал tensorflow_gpu-2.0.0-cp37-cp37m-manylinux2010_x86_64.whlи проверил на наличие дубликатов с использованием fdupes, но не смог найти какой -то ...)
Берс
24

Питонический и кроссплатформенный способ:

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

Под капотом он нормализует пути, управляет разными местоположениями для экзотических и обычных операционных систем и платформ, выполняет поиск в реестре Windows.

Возможно, стоит упомянуть, что если у вас установлены разные версии Python, 2.x'es и 3.x'es, все они имеют одно и то же расположение кеша.

Рабаш
источник
5
ModuleNotFoundError: No module named 'pip.utils', пип 10.0.1 в Ubuntu.
Gringo Suave
1
Если вам нужен pipсобственный каталог кеша, вы также можете просто использовать, from pip._internal.locations import USER_CACHE_DIRили python -c "from pip._internal.locations import USER_CACHE_DIR; print(USER_CACHE_DIR)"если вы захватываете что-то в сценарии и т. Д.
ryanjdillon
Пожалуйста, не _internalпытайтесь получить значения. Внутреннее устройство pip не предназначено для использования в качестве библиотеки и может быть изменено. pip cache dirдля пункта 20,1 и выше - лучший способ получить это значение.
pradyunsg
8

Вы можете сделать резервную копию связанного колеса, а не пытаться выполнить резервное копирование папки кэша.

Загрузите колесо для csselect версии 0.9.1 в /tmp/wheelhouse:

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

Устанавливаем скачанный руль:

pip install /tmp/wheelhouse/cssselect-0.9.1-py2-none-any.whl
Фредрик
источник
Насколько стабильно / предсказуемо cssselect-0.9.1-py2-none-any.whlимя файла?
Blaise
Зависит от того, что разработчики делают в файле setup.py при упаковке.
Фредрик