Наверное, нет смысла подробно останавливаться на том, что такое virtualenv или pip, про эти трендовые понятия питоньего мира написана уже не одна статья. Так что сегодня, я просто поделюсь способом разворачивания проекта основуясь на этих технологиях.
Итак, на самом деле все просто. Для начала надо создать новое виртуальное окружение, а затем установить туда все зависимости. Также было бы неплохо получить Makefile
со всеми необходимыми целями, которые будут облегчать работу с проектом.
Конечно, все это можно делать и руками для каждого следующего проекта. Благо запоминать там немного:
$ virtualenv ENV
да:
$ pip install -E ENV -r REQUIREMENTS.pip
где REQUIREMENTS.pip
- файл со всеми необходимыми зависимостями для проекта. Ну а потом прописать прямо в Makefile
или в Makefile.def
путь к "новому" Python'у, в нашем случае это может выглядеть как-то так:
PYTHON=ENV/bin/python
Но, когда новые проекты начинают сыпаться как из рога изобилия хочется автоматизировать все эти действия. Для этого я на коленке написал bootstrap скрипт. Разберемся с тем, что он делает.
Во-первых, его нужно сохранить в директорию с проектом (это ограничение я думаю преодолеть по-позже, когда разберусь с созданием проекта с шаблона).
Во-вторых, для настройки тех или иных параметров скрипта, например, названия файла с зависимостями или имени нового виртуального окружения, вы можете создать файл bootstrap.cfg
в директории проекта. Скрипт попытается считать настройки оттуда и обновит их.
В-третьих, скрипт создат для Вас новое виртуальное окружение, если оно еще не создано. По умолчанию, это виртуальное окружение создатся с опциями --no-site-packages --unzip-setuptools
.
В-четвертых, скрипт попытается создать Makefile
, используя шаблонный файл Makefile.template
, который должен быть ранее создан в директории проекта.
В-пятых, скрипт установит все зависимости, находящиеся, по умолчанию, в файле REQUIREMENTS.pip
и сохранит все скачанные архивы с питоньими пакетами в ENV/src
. Формат файлов зависимостей описан в документации к pip.
Собственно все. После обновления зависимостей или шаблона Makefile - просто выполните bootstrap.py
еще раз and have fun.
Как уже говорил, в будущем хочется разобраться с созданием проекта с шаблона, чтобы тратить как можно меньше времени на начало каждого следующего проекта.