Ploneのbuildoutな開発環境を作る方法
tacacoです。Zope/PloneアドベントがTaitoさんから回ってきたので、何を書こうかと思ったのですが、使ってる人ばかりだからか、ここには最初の開発環境の作り方がないなぁと思ったので、これから開発を始めようという人向けに環境構築の方法を書くことにします。(まあ、今までにいろんなところで書かれていますけど。)
手順としては
- Python install
- PIL install
- wget http://peak.telecommunity.com/dist/ez_setup.py
- python ez_setup.py
- easy_install ZopeSkel
- paster create -t plone3_buildout myproject
- cd myproject
- python bootstrap.py
- ./bin/buildout
- 起動して、開発開始
なのですが、これだけだとあんまりなので、詳細を。
1. Pythonのインストール
Plone3 は Zope2.10系なので、pythonは2.4系を使います。
2.4.6が最新バージョン(2009.12.14現在)なのでここからダウンロードしてきます。
ダウンロードしたtgzを解凍して、出来たディレクトリに移動。
./configure --prefix=/path/to/python/install/directory make make install
2. PIL(Python Imaging Library) インストール
PILはここからダウンロードできます。
ダウンロードしてきた Imaging-1.1.6.tar.gz を解凍して出来たディレクトリに移動。
先ほどインストールしたpythonを使って
/path/to/bin/python setup.py build
これで表示されるBUILD SUMMARYでJPEGなどが「support ok」となっていたら
/path/to/bin/python setup.py install
3 4 5. ez_setup.py とZopeSkelを入れpasterコマンドを使えるようにする
次は、ez_setup.pyを実行してeasy_installコマンドを使えるようにし、その後でZopeSkelをインストールします。
まず、ez_setup.pyをひろってきます。
wget http://peak.telecommunity.com/dist/ez_setup.py
easy_installを使う為にez_setup.pyを実行します。
/path/to/bin/python ez_setup.py
これでpythonと同じ場所(つまりbin以下)にeasy_installが入り、コマンドが使えるようになりますのでそれを使ってZopeSkelをインストール。
/path/to/bin/easy_install ZopeSkel
これでやっとpasterコマンドが使えるようになります。次はbuildout環境を作ります。
6. buildoutの開発環境を作る
/path/to/bin/paster create -t plone3_buildout ProjectName
ここで指定したProjectNameで、ディレクトリが作られますが、その前にいくつかの質問に答えます。
Enter plone_version (Which Plone version to install) ['3.3.2']:
Ploneのバージョンを指定します。もし、3.3.1を使いたい場合は3.3.1と書いてください。指定しなければ{''}の中のバージョンになりますのでそのままEnter。
Enter zope2_install (Path to Zope 2 installation; leave blank to fetch one) ['']:
自分でインストールしたZopeがあれば、そのパスを指定。空欄だとZopeも取ってきてくれます。
Enter plone_products_install (Path to directory containing Plone products; leave blank to fetch one) ['']:
これも同じ。Plone productsを入れていたらそのパスを書きます。空欄だと取ってきてくれます。
Enter zope_user (Zope root admin user) ['admin']:
Zopeのルート管理者となるユーザー名を入力します。デフォルトは「admin」です。
Enter zope_password (Zope root admin password) ['']:
Zopeのルート管理者のパスワードを入力します。
Enter http_port (HTTP port) [8080]:
起動するポート番号を指定します。デフォルトは8080。
Enter debug_mode (Should debug mode be "on" or "off"?) ['off']:
デバッグモードのon/offを指定。通常はoffでOK。
開発する時は起動時にfgをつけて起動すればデバッグモードになります。
Enter verbose_security (Should verbose security be "on" or "off"?) ['off']:
verbose_securityのon/offを指定。通常はoffでOK。
最後にGeneration finished等と表示され、指定したディレクトリ名の中にbootstrap.pyやbuildout.cfg等が作られます。そこで出るメッセージに従って、まずはbootstrap.pyを走らせます。
7. python bootstrap.py
/path/to/bin/python bootstrap.py
これで、bin、develop-eggs、eggs、partsというディレクトリが出来、bin以下にbuildoutコマンドが入ります。
8. ./bin/buildout
早速、./bin/buildoutとしたいところですが、ploneはelementtreeを要求しますので、buildoutで一緒に入れるように指定をbuildout.cfgに書きます。
※Plone3.3.2迄は必要でしたが、今のbuildoutは自分で取ってきてくれるので必要ありません。
[buildout] eggs = elementtree
作ったProjectNameのディレクトリに移動して
./bin/buildout
このコマンドでpipyサーバーから必要なものを取ってきて、コンパイルしていきます。
なので結構時間がかかります。
途中、SyntaxError : 'return outside function というエラーが出力されますが、pythonまで一緒にコンパイルしようとしている為だそうで、気にしなくていいそうです。
このbuildoutコマンドにはいろんなオプションがあります。詳細はこちらのCommand-line usageを参照してください。
これで環境構築は終わりです。最後に起動コマンドを。
9. 起動
デバッグモードで起動します。
./bin/instance fg
後は、themeやarchetypeのベースをsrcディレクトリ以下に作って開発開始です。
本当はpasterを使って、browser以下に画像を置くthemeの作り方とかにしようかとも思ったのですがそれはまた機会があったら書きます。
次は、株式会社CMSコミュニケーションズの中西さんにお願いします。
前: Ploneセミナー&パーティー開催
