Как кэшировать загруженные пакеты PIP [дубликат]


этот вопрос уже есть ответ здесь:

  • Как установить из локального кэша с помощью pip? 10 ответов

Как предотвратить повторную загрузку ранее загруженных пакетов PIP? Я тестирую установку matplotlib, пакета размером 11 Мб, который зависит от нескольких пакетов, специфичных для дистрибутива. Каждый раз, когда я бегу pip install matplotlib, он повторно загружает matplotlib. Как мне это остановить?

3 59

3 ответа:

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

там, кажется, также есть дополнительная опция для PIP pip --download-cache что нужно сделать что-то подобное, но я никогда не пробовал это сам. Для вашего примера, чтобы избежать повторной загрузки matplotlib каждый раз, вы сделали бы следующее:

pip install --download-cache /path/to/pip/cache matplotlib

это ответ на твой вопрос?

для новых версий Pip:

новые версии Pip по умолчанию теперь загружает кэш. Смотрите эту документацию:

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

для старых версий Pip:

создайте файл конфигурации с именем ~/.pip/pip.conf и добавить следующее содержание:

[global]
download_cache = ~/.cache/pip

в одну команду:

printf '[global]\ndownload_cache = ~/.cache/pip\n' >> ~/.pip/pip.conf

вы можете

# download and extract package to build path
pip install --no-install matplotlib

# the build path could be found by 
pip install --help|grep Unpack\ packages\ into -A 2

# then rm pip-delete-this-directory.txt inside the build path
# this prevent pip from removing package from the build directory after install
# you could check the content of the file
rm build/pip-delete-this-directory.txt

# from now on you could install matplotlib quickly
# this uses single build directory 
# and can speed up compiling by caching intermediate objects.
pip install --no-download matplotlib

кроме того, вы можете вручную скачать пакет

pip install -d dir_for_packages matplotlib

затем установите его с помощью un-tar и python setup install позже.

The pip install --download-cache работает аналогичным образом с дополнительной проверкой: он сначала ищет последнюю или указанную версию целевого пакета из интернета, Если поиск имеет результат и есть кэшированный пакет в каталоге, указанном download-cache кэшированный пакет будет использоваться вместо загрузки. Например,

pip install --download-cache . pymongo

загрузит пакет pymongo в текущий каталог:

http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fp%2Fpymongo%2Fpymongo-2.1.1.tar.gz
http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fp%2Fpymongo%2Fpymongo-2.1.1.tar.gz.content-type