pythonのライブラリ管理ツールとして知られるzc.buildoutを使ってみました。
zc.buildoutは引っかかる日本語の情報が少ないのですが、
こちらの記事が非常に参考になりました。(というかここだけでOK)
Buildout(zc.buildout)とは
本家サイト http://www.buildout.org/en/latest/
pythonベースのビルドシステム。
virtualenvだと、作成した環境ごとに必要に応じたパッケージを手動でインストール(pip install [package]
)しないといけませんが、
Buildoutだと設定ファイルに従って必要なパッケージを自動でインストールしてくれるそうな。
原理的には、PyPIやローカルにあるEggを組み合わせてアプリケーションを構築します。
Eggとは
やってみる
こんなチュートリアルもあるみたいなんですが
https://jacobian.org/2009/apr/15/django-apps-with-buildout/
一番上で紹介した記事を読み進めていくとチュートリアル的なものがあるので、それに従っていきます。
buildoutのインストール
buildoutのインストールには、2通りの方法があります。
pip
やeasy_install
などのコマンドを使うbootstrap.py
をダウンロードし、実行する
1. の場合
インストールはこのコマンド一発で大丈夫です。
# pipの場合
$ pip install zc.buildout
インストール後、任意のディレクトリにてbuildout init
コマンドを実行します。
$ buildout init
すると、以下のようなディレクトリが作成されます。
$ tree . ├── bin │ └── buildout ├── buildout.cfg ├── develop-eggs │ └── zc.buildout.egg-link ├── eggs │ └── setuptools-6.0.2-py2.7.egg └── parts
2. の場合
macだとcurl
コマンドを使ってbootstrap.py
をダウンロードしてきます。
$ curl -O "https://raw.githubusercontent.com/buildout/buildout/master/bootstrap/bootstrap.py"
注)
ネットで調べると次のようなURLで実行しているんですが、
このブログ執筆時点(2014/10/01)ではうまくいきませんでした。
# 本家サイトでもこう書いてる $ wget http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py # または $ wget https://raw.github.com/buildout/buildout/master/bootstrap/bootstrap.py
このURLで実行すると、bootstrap.py
には以下のようになってました。
This document is located <a href="/zc.buildout/trunk/bootstrap/bootstrap.py?view=co">here</a>.
--------------注記ここまで--------------
実行すると、実行したディレクトリにbootstrap.py
というファイルが作成されます。
その後は一度空のbuildout.cfg
ファイルを作成してから、bootstrap.py
を実行します。
$ touch buildout.cfg $ python bootstrap.py
実行すると、1. の時と同じディレクトリ群が作成されます。
buildout.cfgを設定、実行
buildout.cfg
に以下のように記述してみます。
buildout.cfg
[buildout] parts = codehl [codehl] recipe = zc.recipe.egg eggs = pygments
保存したらさっそく実行してみます。
bin
ディレクトリの下のbuildout
というコマンドを実行します。
$ ./bin/buildout Upgraded: setuptools version 5.6; restarting. Generated script '/Users/[ユーザ名]/workspace/python/buildout_sample/bin/buildout'. Getting distribution for 'zc.recipe.egg>=2.0.0a3'. Got zc.recipe.egg 2.0.1. Installing codehl. Getting distribution for 'pygments'. Got Pygments 1.6. Generated script '/Users/[ユーザ名]/workspace/python/buildout_sample/bin/pygmentize'.
(メッセージは人によって違うかも)
eggs
ディレクトリの下に新しいEggファイルがインストールされています。
(おまけ) インストールしたPygmentsを使ってみる
今回インストールしたPygmentsというパッケージはSyntax highlighterだそうなので、
何か適当にファイルを作って実行してみましょう。
sample.js
// This is test script var i = 0, dict_sample = { 'a': 'hoge', 'b': 123 };
./bin/pygmentize
コマンドを実行します。
実行結果
とりあえずここまで!