GAE远程API的应用程序ID错误

时间:2014-03-15 09:43:21

标签: python google-app-engine

我正在尝试在本地客户端中使用远程API,遵循Google文档(https://developers.google.com/appengine/docs/python/tools/remoteapi)中提供的说明。

我首先尝试使用远程API shell,一切正常。我可以连接到我的远程数据存储区并获取数据。

但是当我运行以下脚本时,这与Google的例子非常相似:

#!/opt/local/bin/python2.7
import sys

SDK_PATH = "/usr/local/google_appengine/"
sys.path.append(SDK_PATH)
import dev_appserver
dev_appserver.fix_sys_path()

from google.appengine.ext.remote_api import remote_api_stub
import model.account

def auth_func():
  return ('myaccount', 'mypasswd')

remote_api_stub.ConfigureRemoteApi('myappid', '/_ah/remote_api', auth_func)

# Fetch some data
entries = model.account.list()
for a in entries:
    print a.name

然后我收到一个错误:

 Traceback (most recent call last):
    File "./remote_script_test.py", line 26, in <module>
      entries = model.account.list()
    [...]
    File "/Developer/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/datastore/datastore_rpc.py", line 1333, in check_rpc_success
      raise _ToDatastoreError(err)
google.appengine.api.datastore_errors.BadRequestError: Application Id (app) format is invalid: '_'

它说我的应用程序ID是一个简单的下划线&#39; _&#39;,但由于我的app.yaml配置正确并且当我执行

时,情况并非如此
print app_identity.get_application_id()
从该脚本

我得到正确的应用程序ID。我的印象是GAE环境没有正确设置,但我无法弄清楚如何使其工作。有没有人有完整的代码可以在这种情况下工作?

我正在使用Mac Os X Mountain Lion。

1 个答案:

答案 0 :(得分:0)

您可能希望从remote_api_shell.py开始并删除内容,直到它中断,而不是添加内容直到它工作。

例如,您复制的那一行后面有一行:remote_api_stub.MaybeInvokeAuthentication()是必要的吗? remote_api_shell.py中可能有许多必要的行,也许最好自定义它而不是从头开始。