Де знаходиться папка кешування pip


93

Де знаходиться папка кеш-пам’яті Python ? У мене сталася помилка під час встановлення, і тепер переінсталюйте пакети за допомогою кеш-файлів

Де цей каталог? Я хочу створити резервну копію для подальшого встановлення. Це можливо ?

Наприклад, у мене є такий:

Using cached cssselect-0.9.1.tar.gz

Я шукав у Google цей каталог, але все, що я бачив, це навчитися встановлювати з папки, я хочу знайти каталог кешу за замовчуванням.

І ще одне питання, ці кеш-файли залишаться в цьому каталозі або незабаром видаляться?


1
Це залежить від ОС.
Martin Konecny

windows @MartinKonecny
Arash Hatami

3
Я вважаю, що це в ~\AppData\Local\pip\cacheWindows.
Фредрік

є багато файлів з незрозумілими іменами, таких як '0f4017d43a13156e41129019e85a69fcc2dd34e6904ed88395bb5451' ... чи можу я точно знайти файл 'cssselect-0.9.1.tar.gz' ??? @fredrik
Arash Hatami

2
Кеш-пам’ять не завжди зручно читати людиною, як у цьому випадку.
Фредрік

Відповіді:


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/commits/…
Гюго,

Див. Також PIP_CACHE_DIRзмінну середовища, щоб встановити цей каталог.
Алекс Повель,

123

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

Unix

~ / .cache / pip, і він поважає каталог XDG_CACHE_HOME.

macOS

~ / Бібліотека / Кеші / піп

Windows

<CSIDL_LOCAL_APPDATA> \ pip \ Cache

Кеш колеса

pip буде читати з коліс підкаталогу в каталозі кеш-пам’яті pip та використовувати будь-які там знайдені пакунки. [сніп]

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 та 3.x, всі вони мають одне і те ж розташування кешу.


5
ModuleNotFoundError: No module named 'pip.utils', pip 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)"якщо ви
захоплювали

Будь ласка, не заходьте _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ім'я файлу?
Блез

Залежить від того, що роблять супровідники у своєму setup.py при упаковці.
fredrik
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.