按照此页面上的说明,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
答案 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的路径相同,因此您的应用程序代码不可用