ここのところGoogle App Engine用のApplicationを開発(とか良いながらぜんぜん進んでないけど><)
してるわけですが、この間Cygwinのsetup.exeを起動して云々してたら、Pythonが2.6.5になったりで、
開発環境がどうも不安定なので、今後面倒なことにならないためにも、
Google App Engine用のPython環境を整えることに。
0. CygwinのPythonをインストール
とりあえず後々使うvirtualenvとか、mercurialのために、CygwinのPythonをインストール。
手順としては、
setup.exeを起動- パッケージリストから
pythonを選択 - セットアップを実行
という感じ。
1. Python2.5.5のインストール
んで、次にGoogle App Engine用のPythonをインストール。
Google App EngineはPython 2.5系を要求するので、 今回は2.5系の最新版である2.5.5をインストールします。
で、あとは端末で、
$ cd ~/tmp
$ wget http://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz
$ tar zxvf Python-2.5.tgz
$ cd Python-2.5.5
$ ./configure --prefix=/usr/local/python2.5.5
$ mame
$ make install
という感じでインストールしました。
3. virtualenvをインストール
んで次にvirtualenvをインストールします。
もしかするとシステムにvirtualenvをインスコしないほうがいいのかも知れませんが、
めんどくさかったので、
$ pip install virtualenv
としてvirtualenvをインストールしました。
まあ、pipがインストールされてない環境ではeasy_installを使うとよろしいかも知れません。
4. virtualenvでGoogle App Engine用環境を作成
これで役者はそろったので、いよいよGoogle App Engine用の仮想環境を作成していきます。
んで、端末で、
$ virtualenv --python=/usr/local/python2.5.5/bin/python2.5 /home/nyarla/local/gae
とすると、インストールが実行される……と思いきやなんかリンクしたライブラリが見つからないとかいわれてエラー。
で、エラーメッセージがいまいち意味不明だったので、試しに~/local/gae/binに生成されたpython.exeを実行してみると、
どうもlibpython2.5.dllが見つからないというエラーが。
んで、このメッセージを見て、これはどうも実行ファイルがあるディレクトリにパスが通ってないせいっぽかったので、 今度は、
$ export PATH=/usr/local/python2.5.5/bin:${PATH}
$ virtualenv --python=/usr/local/python2.5.5/bin/python2.5 /home/nyarla/local/gae
としてパスを通してから実行、すると今度はうまくいきました。
んで、この作業をした後、シェルの設定ファイルに、
export PATH=${PATH}:/usr/local/python2.5.5/bin
と記述して、恒久的にパスを通すようにしました。
5. virtualenvを使う
で、これでも完全に作業は終わったので、Google App Engine用の仮想環境を使うには、
$ source ~/local/gae/bin/activate
とすればOKという状態になりました。
6. 感想
とりあえず詰まった所としてはPython2.5.5にパス通してなくてvirtualenvを実行しても先に進まなかったことぐらいですが、
それ以外はすんなりと実行できました。
まあこれでGoogle App Engine用のPython2.5.5環境が整ったので、 あとはモリモリと開発していくだけです。
で、Google App Engine用Applicationですが、最初はframeworkを使わずにやってたんですが、 途中でめんどくさくてやってられねーとなって、kay framework を使ってたんですが、なんか遅いような気がする上に、作法がなんとなくなじまなかったので、 Pylonsを使ってみようかと考えている次第。まあこれから試してみっかって感じですが。
というわけで以上virtualenvとPython2.5.5でGoogle App Engine用仮想環境を作るという話でした。