環境
環境は以下の通りです。Vagrantはなくても本来的には差支えないですが、本稿ではVagrantを利用する前提で進めます。
ホスト側
- Windows 8.1
- VirtualBox 4.3
- Vagrant 1.6
VM側
まずはVagrantをinit
Vagrantfileを保存したいディレクトリでvagrant init
とvagrant up
します。
init
するときは事前にadd
してあるboxを指定してください。私の場合は、以前addしたubuntu13のboxを指定してます。
virtualenvのインストール
試しにenv
という環境を構築します。発行コマンドは以下(テンプレ的ですが)。
virtualenv内でPyramid環境構築
出来上がったvirtualenv内でPyramidをインストールします。
注意したいのは、実行するeasy_install
は飽くまでvirtualenv内にインストールしたeasy_install
という点です。ここで誤ってeasy_install pyramid
とするとグローバルな環境にPyramidがインストールされてしまい、他の環境へ干渉してしまいます。
実行すると以下のメッセージが出ます。
プロジェクトの作成
Pyramidをインストールしたらプロジェクトを作成します。ここではmy-project
というプロジェクトを作成します。
誤ってpython setup.py develop
としないよう気を付けてください。そうすると(先ほどのPyramidインストール時でも述べましたが)virtualenv内のpythonではなくて、その外のpythonによってスクリプトが実行され、グローバルな環境の扱いになります。
ちなみに正しく実行すると以下のようなメッセージが出ます。
warningは対応しなくても大丈夫です。
DB初期化
今回、そこまで設定してないけど初期化しないとエラーになるので。
もしここで
と出てしまったら、プロジェクト作成の時にsudo ../bin/python setup.py develop
をsudo /python setup.py develop
としていないか確認してください。
サーバー立ち上げ
実行メッセージ
よくある間違い
Pyramidのプロジェクトを作成するときに
ではなくて
とすると
../bin/pserve development.ini
したときに以下のエラーが出ます。
もしくは以下のようなエラー。
この場合はプロジェクトの作成からやり直してください。
ブラウザからPyramid見えるようにする
Vagrantの設定を変更して、ホスト側(windows側)からPyramidのローカル環境を見れるようにします。
以下をVagrantfileに追記します。
上記の設定ではguest
がVM上のポートで、hostの方がホスト側のポートです。設定を追記したらVMを立ち上げなおします。
アクセスしてみる
では、ホスト側のPCからVM上のPyramidを確認してみましょう。ブラウザからlocalhost:6543
にアクセスしてみてください。
以上です。
参考
- http://docs.pylonsproject.jp/projects/pyramid-doc-ja/en/latest/tutorials/wiki2/installation.html#id4
- http://docs.pylonsproject.org/projects/pyramid/en/1.0-branch/narr/project.html
- http://docs.pylonsproject.jp/projects/pyramid-doc-ja/en/latest/narr/install.html
- http://o-tomox.hatenablog.com/entry/2013/07/19/143927
- http://stackoverflow.com/questions/13658930/why-am-i-getting-distributionnotfound-error-when-i-try-to-run-pyramid-project
- http://dqn.sakusakutto.jp/2014/02/vagrant_port_forward_80_80.html
- http://pylog.applifirst.jp/2013/10/27/about_pyramid_alchemy/