nginxとpythonとpyramid 起動まで
サムライファクトリーの平成コンビがお送りするWebサービスダイナシ
画像にコメントをつけて、ぜひ楽しんでください。
前回のエントリーでPyramidのインストール方法を紹介しました。
今回はプロジェクトの新規作成からサーバー起動までを紹介します。

前回作成したpythonbrewの仮想環境を起動します。

workon pyramid


コンソールに「(pyramid)[xxxx@xxx]$ 」のように表示されていれば成功です。
現在仮想環境「pyramid」にインストールされたパッケージ一覧を表示する場合はfreezeコマンドを利用します。

pip freeze

pyramidに必要なパッケージ群が一覧に表示されます。

仮想環境を起動中はPATHの先頭に「/home/yoshi/.virtualenvs/pyramid/bin」が追加されます。
pythonコマンドやpipコマンドの他に、pipでインストールしたPyramidのツールコマンドも含まれています。

pcreateコマンドで新規プロジェクトを作成します。

pcreate -s alchemy sample

カレントディレクトリにプロジェクト「sample」が作成されます。
Railsのscaffoldみたいに枠組みが自動生成されます。
ここでは「-s alchemy」で枠組みのテンプレートを指定しています。
sqlalchemyの設定などが組み込まれた状態まで自動生成してくれるのでとても便利です。
また、他のテンプレートを確認したい場合は-lコマンドで確認できます。

作成したsampleプロジェクトの「development.ini」中身を確認すると
「sqlalchemy.url = sqlite:///%(here)s/sample.db」の記述があります。
デフォルトではsqliteを利用する設定で用意されています。
ただし、先ほどのfreezeコマンドで確認した一覧にsqliteを扱うためのライブラリがインストールされていません。

別途sqliteパッケージとpython用ライブラリをインストールします。

sudo yum install sqlite.x86_64
sudo yum install sqlite-devel.x86_64


次にpipでpython用ライブラリをインストールするのですが、
せっかくなのでsetup.pyに記述しておきます。
プロジェクトのトップディレクトリにあるsetup.pyを開き、変数「requires」のリストに「pysqlite」を追加します。

requires = [
'pyramid',
'SQLAlchemy',
'transaction',
'pyramid_tm',
'pyramid_debugtoolbar',
'zope.sqlalchemy',
'waitress',
'pysqlite', <--- 追加
]


sampleプロジェクトのトップディレクトリに移動してdevelopコマンドを実行します。
※基本的にPyramidコマンドはプロジェクトのトップディレクトリで実行します。

python setup.py develop

自動的にsqlite用パッケージがインストールされ、依存パッケージがある場合は一緒にインストールされます。
「pip install」でも同じ事が可能ですが、setup.pyに記述しておく事で後から別の環境に構築するのが簡単になります。

次にデータベースの用意をします。sampleプロジェクトではすでにサンプルが用意されているのでコマンドを実行して作成します。

populate_sample development.ini

コマンドを実行するとトップディレクトリに「sample.db」が作成されます。
※2012/3/24追記
Pyramid1.3正式版からコマンドがinitialize_sample_dbに変更されました。

populate_sampleコマンドは先ほどのPATHに含まれているコマンドです。
コマンドの実態は「${PROJECT_HOME}/sample/scripts/populate.py」になります。
populate_sampleコマンドとpopulate.pyの紐付けはsetup.pyに記述されています。
setup関数のentry_points引数に文字列で下記のように指定されています

entry_points="""\
[paste.app_factory]
main=sample:main
[console_scripts]
populate_sample=sample.scripts.populate:main
""",

「コマンド名=ソースパッケージ:実行関数」の書式で指定されているので、
cronでバッチ処理を実行したい場合はここに新しいスクリプトを追加します。

以上でsampleプロジェクトの構築は完了となります。

PyramidにはデフォルトでWSGIサーバー「waitress」が付属されているのでpserveコマンドで実行します。

pserve development.ini --reload

デフォルトでポート6543で起動されることを確認したらブラウザからアクセスします。
http://domain:6543/

サンプルプロジェクトのページが表示されコンソールにSQL実行ログが表示されます。
プロジェクトの作成から設定、ログ出力など簡単なコマンドを実行するだけで用意されるのがとても便利かと思います。

2012/03/04 17:58 | Comments(0) | プログラム

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<nginxとpythonとpyramid MySQLの設定 | HOME | nginxとpythonとpyramid スタートアップ>>