zc.buildout

zc.buildout は環境を構築するためのツールです。

install

インストール方法は2通りあります。

今使用しているPythonにインストール

インストールは至って簡単です。:

$ pip install zc.buildout

インストールがすむと buildout コマンドが使用できます。 作成する環境用のディレクトリと設定ファイルとを作成します。:

$ buildout init

すると次のようなファイルとディレクトリが作成されます。:

(common)$ find
.
./bin
./bin/buildout
./buildout.cfg
./develop-eggs
./develop-eggs/zc.buildout.egg-link
./eggs
./eggs/setuptools-0.7.7-py2.7.egg
./parts

使用しているPythonを汚染せずにインストール

このインストール方法では今使用しているPythonを汚染しません。 この方法では zc.buildout すら今使用しているPythonのsite-packagesに インストールされることはありません。

まず bootstrap.py をダウンロードします。:

(common)$ wget "https://raw.github.com/buildout/buildout/master/bootstrap/bootstrap.py"
--2013-09-06 20:52:46--  https://raw.github.com/buildout/buildout/master/bootstrap/bootstrap.py
Resolving raw.github.com... 103.245.222.133
Connecting to raw.github.com|103.245.222.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6199 (6.1K) [text/plain]
Saving to: ‘bootstrap.py’

100%[============================================================================================================>] 6,199       --.-K/s   in 0s

2013-09-06 20:52:47 (62.9 MB/s) - ‘bootstrap.py’ saved [6199/6199]

(common)$

ダウンロードした bootstrap.py を実行するのですが buildout.cfg がないとエラーしてしまいます。:

(common)$ python bootstrap.py --allow-site-packages
While:
  Initializing.
Error: Couldn't open /Users/takeshishimada/ng/home/common/tmp/test-buildout/buildout.cfg

なので先に buildout.cfg を作っておいて bootstrap.py を実行します。:

(common)$ touch /Users/xxxxxx/ng/home/common/tmp/test-buildout/buildout.cfg
(common)$ python bootstrap.py --allow-site-packages
Creating directory '/Users/xxxxxx/ng/home/common/tmp/test-buildout/bin'.
Creating directory '/Users/xxxxxx/ng/home/common/tmp/test-buildout/parts'.
Creating directory '/Users/xxxxxx/ng/home/common/tmp/test-buildout/eggs'.
Creating directory '/Users/xxxxxx/ng/home/common/tmp/test-buildout/develop-eggs'.
Generated script '/Users/xxxxxx/ng/home/common/tmp/test-buildout/bin/buildout'.

すると次のようなディレクトリとファイルが生成されます。:

(common)$ ls | more
bin
bootstrap.py
buildout.cfg
develop-eggs
eggs
parts
(common)$

buildout.cfg - 設定ファイル

buildout.cfg - 設定ファイルini ファイル形式です。

buildoutセクション

buildoutセクション [buildout]zc.buildout にとって特別なセクションです。

partsオプション

このオプションに羅列させたセクション名を探してレシピの通りに処理していきます。

develop オプション

開発用のパッケージを指定します。 指定されたパッケージは develop install されます。 (develop-eggsディレクトリにリンクを作成します)

develop-basedir オプション

開発用のパッケージのあるディレクトリを指定します。

その他のセクション

前述しましたがbuildoutセクションのpartsオプションに記載された セクションのみが処理されます。

recipe オプション

同じセクションの eggs オプションに記載された パッケージをどのように処理するかを指定します。 レシピは1つしか設定できません。 指定する値はレシピ用パッケージ名です。 これはbuildout用のPythonパッケージでドット続き名(doted name)を記載します。 そうすると zc.buildout がレシピを自動で インストール(必要に応じてPyPIからダウンロード)して その eggs を処理します。

使用できるレシピ
  • zc.recipe.egg

    Pythonパッケージをインストールするためのレシピです。

他にもいろいろあるので探してみてください(PyPIで)。 当然ですが自分でレシピを作成することもできます。

eggs オプション

ここに羅列したパッケージがレシピの通りに処理します。

使用できる定数

${buildout:directory}
buildout.cfgのあるディレクトリのPATHです。
${buildout:bin-directory}
binのPATHです。
${buildout:parts-directory}
partsのPATHです。
${buildout:eggs-directory}
eggsのPATHです。
${buildout:develop-eggs-directory}
develog-eggsのPATHです。
inserted by FC2 system