Google App Engine 楽しいですね。
表題の件、僕のPATHの設定か何かが悪いのかもしれないけど、普通にappengineを配置して
cd google_appengine ./dev_appserver.py プロジェクト名
すると下記のようなエラーが表示される。
ERROR 2010-03-01 17:18:14,354 appcfg.py:197] Could not find version file at /usr/lib/pymodules/python2.6/google/../VERSION ERROR 2010-03-01 17:18:14,354 appcfg.py:197] Could not find version file at /usr/lib/pymodules/python2.6/google/../VERSION INFO 2010-03-01 17:18:14,355 appengine_rpc.py:159] Server: appengine.google.com ERROR 2010-03-01 17:18:14,355 appcfg.py:197] Could not find version file at /usr/lib/pymodules/python2.6/google/../VERSION ERROR 2010-03-01 17:18:14,356 appcfg.py:321] Could not determine if the SDK supports the api_version requested in app.yaml. ERROR 2010-03-01 17:18:14,370 appcfg.py:197] Could not find version file at /usr/lib/pymodules/python2.6/google/../VERSION INFO 2010-03-01 17:18:14,370 appcfg.py:349] Skipping update check
色々調べてみたところ、
Ubuntu9.10だとUbuntu Oneでプロトコルバッファを使うため、
自動的にgoogle.protobufというpythonモジュールがインストールされるみたい。
それが上記のエラーにある /usr/lib/pymodules/python2.6/ 以下に入るのだけど、
どうもVERSIONというファイルを探す時にappengineのgoogleモジュールではなく、
/usr/lib/... のgoogleモジュールを探しに行って、そこで「ないよー」となっているみたい。
appengineのソースを確認したら、下記の場所に問題の箇所っぽいところがあった。
google_appengine/google/appengine/tools/appcfg.py の 192行目付近
version_filename = os.path.join(os.path.dirname(google.__file__), VERSION_FILE)
これを下記のように絶対パスに変更するとアップデートがうまくいった。
version_filename = os.path.join("/...(絶対パス).../google_appengine/google",
VERSION_FILE)
もう少しパスを指定するマシな方法があると思うけど、とりあえずこれでしのいでる。
アップデートの度に必要になるので、ここにメモしておく。