Subscribed unsubscribe Subscribe Subscribe

remote_apiを使ってみた

GoogleAppEngine

ドキュメントからリンクが見つけられなかったけど、python版だけなのかなコレ?
http://code.google.com/intl/en/appengine/articles/remote_api.html
"Creating an interactive console"の例の通りにappengine_console.pyを作って実行しても動かない。

% python appengine_console.py
Traceback (most recent call last):
  File "appengine_console.py", line 9, in <module>
    from google.appengine.ext import db
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py", line 88, in <module>
    from google.appengine.api import datastore
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore.py", line 47, in <module>
    from google.appengine.datastore import datastore_index
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/datastore/datastore_index.py", line 53, in <module>
    from google.appengine.api import validation
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/validation.py", line 44, in <module>
    import yaml
ImportError: No module named yaml

解決策はコチラで。
GoogleAppEngineでremote_apiを使う s_thx>tmatsuo - When it’s ready.


とりあえずパスの変更はこれだけも動くようにはなった

import os

g_path = "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine"
extra_path = [
  g_path,
  os.path.join(g_path, 'lib', 'yaml', 'lib'),
]
sys.path = extra_path + sys.path

あとエラー処理は入れておこうよ、というところで

if len(sys.argv) < 2:
  print "Usage: %s app_id [host]" % (sys.argv[0],)
  sys.exit()


で、動くようになったので試してみたら、データ取ったり突っ込んだりできたっぽい!
…でもうまくいかないところもあった。なんでだろう。これから調査する。