使用终端的Google App Engine交互式控制台

时间:2011-07-27 13:03:29

标签: google-app-engine console interactive

按照此页面上的说明,Accessing the datastore remotely with remote_api

我修改了app.yaml以包含以下这些内容:

builtins:
- remote_api: on

我打开了一个终端:

$ cd /path/to/app
$ python2.5 /usr/local/google_appengine/remote_api.shell.py\
            -s localhost:8082 -p /_ah/remote_api

在我的app文件夹结构的根目录下,我有一个名为foobar.py的模块,以及一个名为data_models的包。获得remote_api Python解释器的访问权限后,我尝试以下几行:

import foobar
import data_models

但是我收到了一个错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named foobar

Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named data_models

如何通过终端访问交互式控制台?我错过了什么吗?即使我登录云服务器也会发生同样的事情:

$ python2.5 /usr/local/google_appengine/remote_api.shell.py\
            -s my-app.appspot.com -p /_ah/remote_api

3 个答案:

答案 0 :(得分:3)

remote_api只是可以从本地任务进行RPC调用到App Engine应用程序的远程实例。 Python控制台本身仍然是本地的,你所做的一切都在本地执行。这意味着您尝试导入的任何模块必须存在于您的本地计算机上,您的Python实例可以在其中找到它们 - 可能通过将您的应用程序目录添加到PYTHONPATH,如下所示:

$ PYTHONPATH=/my/app/dir python2.5 /usr/local/google_appengine/remote_api.shell.py\
        -s my-app.appspot.com -p /_ah/remote_api

答案 1 :(得分:0)

我在.bash_profile添加了以下行,这样每次启动终端时都不需要编辑PYTHONPATH

PYTHONPATH = "/path/to/app"
export PYTHONPATH

答案 2 :(得分:-1)

似乎remote_api与您的应用程序位于不同的路径,因此它与remote_api的路径相同,因此您的应用程序代码不可用