2014-11-15 6 views
1

У меня есть веб-приложение Django, которое устанавливает некоторые требования через Pip из файла requirements.txt.Ускоренная установка pip из git URI

Первоначально я написал свои сценарии развертывания для запуска pip install -r requirements.txt каждый раз, когда я развернул его, при том, что я изменил файл requirements.txt в коммит, который я развертывал. Это не слишком сильно повлияло на производительность (с точки зрения времени, затрачиваемого на развертывание), поскольку все пакеты были на PyPI, а Pip делает какое-то интеллектуальное кэширование и не будет загружать пакеты, которые я уже имею каждый раз.

В последнее время я перешел на использование некоторых пакетов, которые еще не находятся на PyPI - только на Github. Я могу установить их, добавив такие строки следующего моей requirements.txt:

-e git+git://github.com/BowdoinOrient/django-storages-py3.git#egg=django-storages-py3 
-e git+git://github.com/BowdoinOrient/topia.termextract.git#egg=topia.termextract 

, но это довольно медленно - Пип, кажется, чтобы проверить GIT репозиторий каждый раз, или, по крайней мере, сделать какое-то сетевая активность, независимо от того, было ли последнее обновление Github обновлено.

Я думал, что я мог бы быть в состоянии держать Пип делать это, указав точный совершает я хочу установить, например, так:

-e git+git://github.com/BowdoinOrient/[email protected]#egg=django-storages-py3 
-e git+git://github.com/BowdoinOrient/[email protected]#egg=topia.termextract 

но Пип всегда будет замедляться на этих линиях и проверить Github для какой-то дополнительной информации, даже если у меня уже установлены эти модули на этих коммитах.

Есть ли способ ускорить работу над этими шагами? Или что-то другое, кроме Пипа, которое быстрее, чем я должен использовать? Я посмотрел на Curdling, но я не думаю, что это то, что мне нужно.

Спасибо!

ответ

3

Исправлена ​​проблема: удаление -e (--editable) флага из линий VCS в файле требований. Txt держит pip от клонирования, если они уже существуют в правильном хеше коммита.

Documentation on pip's -e flag.

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

+0

Спасибо! Я не знал, что имя яйца было значительным. Меняя его так, чтобы оно соответствовало имени папки в каталоге пакетов сайтов, каждый раз останавливался при загрузке. –

Смежные вопросы