PyPI локальный кеш для Jenkins/ локальных сборок

У меня есть экземпляр Jenkins, который создает мой проект с помощью сопутствующих пакетов PyPI из сегмента require.txt. Однако, как и в случае с сборками TravisCI, сборка с нуля каждый раз занимает очень много времени, а это означает, что сборка занимает более 4-5 минут, что намного медленнее, чем было бы идеально.

То, что я ищу, - это способ кэширования загруженных пакетов локально, поэтому при запуске сборки с теми же зависимостями вместо того, чтобы получать из PyPI, он может просто извлекать локально, когда происходит изменение в версии, он может извлекать апстрим-пакет, как сейчас.

Есть ли такой проект там, так как поиск в Google этим вечером мало что показал?

2 ответа

Решение

Пип поддерживает это из коробки

pip install --download-cache=DIR

если запрашивается существующий файл, он читается из кеша. Это также можно сделать с помощью переменной среды PIP_DOWNLOAD_CACHE;

Вы можете кеш яиц прокси как

http://pypi.python.org/pypi/collective.eggproxy

Это действует как локальный прокси для всех загруженных яиц, делая Jenkins более устойчивым, например, к тайм-аутам, которые очень часто случаются с PyPI.

Кроме того, вы можете использовать функцию PYCACHE в setuptools. Увидеть

Что такое кеш яиц Python (PYTHON_EGG_CACHE)?

Другие вопросы по тегам