Python: PIP download cache.

Python PIP Boy
На своих Python-проектах я всё время пользуюсь виртуальным окружением (virtualenv), как для разработки, так и для их деплоя (развёртки, установки). Обычный способ установки новой зависимости в virtualenv это использование пакетного менеджера Python - PIP. Он достаточно прост как по логике работы, так и по использованию. Так, при попытке установить пакет в virtualenv он будет тянуть каждый раз исходники с PyPi-репозитория (или с другого места, если его об этом попросили). Иногда этот процесс может занять достаточно много времени: если надо скачать много пакетов или некоторые из них скачиваются не очень быстро (например, стянуть большой репозиторий с github, помнится, ещё почему-то django скачивалась не очень шустро).

Решение проблемы медленной загрузки пакетов PIP'ом

Итак, если PIP загружает пакеты медленно, то один из способов решения этой проблемы - использовать кеш. Тогда, загрузив и установив один пакет определённой версии в одном виртуальном окружении, вам уже не придётся скачивать его во всех остальных. Для этого нужно либо указать ключ --download-cache и в качестве значения директорию куда будут складироваться пакеты. Например, так:
$ pip install someawesomepackage --download-cache=~/.pip_download_cache

Либо, установить путь до кеша в переменную окружения PIP_DOWNLOAD_CACHE. Например, добавив в ~/.bahrc или ~/.zshrc такую строку:
PIP_DOWNLOAD_CACHE=/home/lizzard/.pip_download_cache

Где вместо lizzard стоит указать ваше имя пользователя.

После этого, при новом запуске вашего shell'а, PIP начнёт кешировать все скачанные пакеты в эту папку.

Пожалуйста, оцените полезность и качество данной статьи. Одна звезда - плохо, 5 - хорошо.
1/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.2/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.3/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.4/5.5/5. (1 голосов, средний: 5,00 из 5)
Загрузка...
  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.