Подготовка окружения для активной работы с ztk / bluebream

Описанная ниже инструкция верна для Ubuntu 10.04 и Python2.6 и описывает настройку удобного и актуального окружения для разработки и развертывания bluebream проектов так, чтобы не создавать бардак в сиcтеме. Шаги описаны последовательно, и на свежеустановленной системе достаточно просто копировать их в консоль.

Во-первых, необходимо установить следующий пакет, используя системный пакетный менеджер:

$ sudo apt-get install python-dev

Во-вторых, давайте изменим права на директорию /usr/local так, чтобы активно работать с ней, не прибегая к услугам суперпользователя. Нам нужны будут директории /usr/local/bin и /usr/local/lib/python2.6, но мы сделаем удобные права для всего локального дерева, если это еще не сделано. Для этого используем группу пользователей staff:

$ chgrp -R staff /usr/local
$ chmod -R g+w /usr/local

Добавим себя или других нужных системных пользователей в группу staff:

$ sudo vigr

Не забудьте зайти в систему заново, чтобы использовать новую группу для текущего пользователя.

В-третьих, теперь можно установить утилиты distribute и pip для наиболее корректного и современного управления python пакетами вне дистрибутивного пакетного менеджера:

$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ easy_install pip

Дополнительно и сразу, можно установить virtualenv. На машине python-программиста он в любом случае нужен, да и на серверах пригождается:

$ pip install virtualenv

zc.buildout

Теперь давайте подготовим удобства для zc.buildout. Они совсем не обязательны на сервере или машине пользователя, которому нужно установить один ztk/blubream проект. Но на машине программиста они полезны.

Для этого создадим директорию .buildout, субдиректорию для установки пакетов python eggs, находящихся под управлением zc.buildout, а также субдиректорию для кэша пакетов, и задекларируем это в пользовательским конфигурационном файле:

$ mkdir -p .buildout/eggs
$ mkdir -p .buildout/download-cache

Файл ~/.buildout/default.cfg [1]

[buildout]
newest=false
eggs-directory=/home/astoon/.buildout/eggs
download-cache=/home/astoon/.buildout/download-cache

Что это дает? zc.buildout управляет python eggs пакетами независимо, скачивая их в специальную директорию внутри каждого проекта и создавая, таким образом, песочницу, вместо того, чтобы изменять общесистемное python окружение. ZTK содержит значительное количество пакетов и требуется время, чтобы скачать их. Т.е. придется долго ждать на каждом новом проекте. Если планируется развертывать не единственный проект, то в пользовательской конфигурации лучше указать использование общего места для установки пакетов под управлением zc.buildout. Что мы и сделали. В eggs-directory могут находиться одноименные пакеты разных версий, не пересекаясь, и в разных проектах могут использоваться разные. Для удаления пакетов достаточно просто удалить их из директории, без дополнительных действий.

На этом, пожалуй, все.

[1]В default.cfg указывайте путь полностью, не сокращая до ~.