Google App Engine導入記

昨日アカウントはゲットしたので、早速App Engineをためしてみる。

PythonとSDKのインストール

まずはSDKをダウンロード。Windows 向けのGoogleAppEngine_1.1.0.msiというファイルを落としてくる。実行するとPython 2.5はインストールされてますか?と聞かれたのでインストールを中断してPython.orgサイトからpython2.5.2のmsiファイルを落としてきて実行する。

インストールディレクトリはどこでもいいのかな?と思ったが、とりあえずデフォルトでやってみた。Pythonのインストールが終わったのでもう一度AppEngineのmsiを実行すると Python 2.5 found と表示されたので、規約同意やらなにやら全部デフォルトでインストールしてみた。

とりあえず起動

ここでとりあえず何をしたら良いのかわからなくなった。デスクトップでの開発検証用サーバの起動とかそういうことをすべきなんだろうけど、やり方がよくわからず。ドキュメントをちょっと読んだところ、以下のようにすればよさそうなことがわかった。

cd C:\Program Files\Google\google_appengine
dev_appserver.py demos\guestbook

すると以下のようなエラーが・・

WARNING 2008-06-13 05:42:47,937 dev_appserver.py] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named PIL
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\dev_appserver.py", line 50, in
..

どうやらPILってのが必要らしい。

PIL のインストール

以下からMSIファイルを落として、インストールした。
http://www.pythonware.com/products/pil/

すると上記のエラーは消えたが、今度は以下のようなエラーが・・

WARNING 2008-06-13 08:45:18,187 datastore_file_stub.py] Could not read datastore data from c:\users\shimono\appdata\local\temp\dev_appserver.datastore
WARNING 2008-06-13 08:45:18,187 datastore_file_stub.py] Could not read datastore data from c:\users\shimono\appdata\local\temp\dev_appserver.datastore.history
Traceback (most recent call last):
File "C:\Program Files\Google\google_appengine\dev_appserver.py", line 50, in

execfile(script_path, globals())
File "C:\Program Files\Google\google_appengine\google/appengine/tools/dev_appserver_main.py", line 351, in
sys.exit(main(sys.argv))
File "C:\Program Files\Google\google_appengine\google/appengine/tools/dev_appserver_main.py", line 330, in main
require_indexes=require_indexes)
File "C:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 2645, in CreateServer
return BaseHTTPServer.HTTPServer((serve_address, port), handler_class)
File "C:\Python25\lib\SocketServer.py", line 330, in __init__
self.server_bind()
File "C:\Python25\lib\BaseHTTPServer.py", line 101, in server_bind
SocketServer.TCPServer.server_bind(self)
File "C:\Python25\lib\SocketServer.py", line 341, in server_bind
self.socket.bind(self.server_address)
File "", line 1, in bind
socket.error: (10013, 'Permission denied')

Windows Firewallかとおもって、設定をみたがおかしくない。なぜだ・・(悩むこと10分以上orz)

あ、Tomcatが8080でうごいてる!(忘れてた!)

ということでTomcatをとめたところ、 http://localhost:8080/でゲストブックアプリが動いてくれました。

GUIとか

ちなみにGoogle Developper Day 2008のデモでみた起動だの停止だのデプロイができるGUIのアプリはどうやって起動するんだろうと探したのだがやり方がわからない。調べてわかったのは、アレはMac OS X 専用のアプリらしいってこと。

http://googleappengine.blogspot.com/2008/05/app-engine-launcher-for-mac-os-x.html

そういうことか・・ でもコマンドラインやだなぁ・・

あと、Pythonの開発環境どうしよってことで調べたら、PyScripterというプログラムとPyDevっていうEclipse Pluginが選択肢にあることがわかった。

Eclipse は今仕事でEMFやらGEFやらWTPやらなにやら色々プラグインをいれたり、入らなかったりでストレスをためていたところなのでいやだなぁとおもったのだけど、まあ「逃げちゃだめだ」ってことで、PyDevをいれてみましたよ。疲れたので今日はここまで。 また来週〜