Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Отвечает ли это на ваш вопрос?

Ответ 2

Для новых версий пива:

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

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

Для старых версий Пита:

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

[global]
download_cache = ~/.cache/pip

В одной команде:

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

Ответ 3

Вы могли

# 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 позже.

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