Как вы предотвращаете повторную загрузку PIP ранее загруженных пакетов? Я тестирую установку matplotlib, 11 МБ пакета, который зависит от нескольких дистрибутивных пакетов. Каждый раз, когда я запускаю pip install matplotlib
, он повторно загружает matplotlib. Как это остановить?
Как кэшировать загруженные пакеты PIP
Ответ 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