Google App Engine本地(开发)IPython Shell

时间:2013-01-22 23:03:27

标签: python google-app-engine ipython

在我当地的Google应用引擎开发环境中,我想使用ipython shell,尤其是能够查看包含通过dev_server.py创建的数据的模型, 非常类似于django' manage.py shell命令的工作原理。

(这意味着应该在修复sys.path并且读取和分析app.yaml并且本地数据存储已准备好之后启动ipython shell)

对此有任何简单的解决方案吗?

3 个答案:

答案 0 :(得分:7)

对于初学者,您可以将应用程序根目录和SDK根目录(google_appengine)放在Python路径中。您还需要一些像yaml这样的库,可以从SDK的lib目录中安装或添加到库路径中。然后你可以导入模块并调用一些功能。

>>> import sys
>>> sys.path.append('/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine')

当然,只要代码路径尝试进行服务调用,库就会引发异常,说它没有绑定任何东西。要将服务库绑定到测试存根,请使用测试平台库:

>>> from google.appengine.ext import testbed
>>> tb = testbed.Testbed()
>>> tb.activate()
>>> tb.init_datastore_v3_stub()
>>> from google.appengine.ext import db
>>> import models
>>> m = models.Entry()
>>> m.title = ‘Test’
>>> m.put()

要告知数据存储区测试存根使用开发服务器的数据存储区文件,请将文件路径作为init_datastore_v3_stub()参数传递给datastore_file。有关详细信息,请参阅google.appengine.ext.testbed中方法的文档注释。

有关测试平台的更多信息:https://developers.google.com/appengine/docs/python/tools/localunittesting

答案 1 :(得分:1)

基本上你需要使用它:https://developers.google.com/appengine/articles/remote_api

对于IPython支持,您有两种选择:

(1)如果你正在使用Python 2.7(和IPython 0.13),你需要使用它来嵌入一个IPython shell:

from IPython.frontend.terminal.interactiveshell import TerminalInteractiveShell
shell = TerminalInteractiveShell(user_ns=namespace)
shell.mainloop()

(2)如果你正在使用Python 2.5(和IPython 0.10.2),你需要使用这一行来嵌入一个IPython shell:

from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed(user_ns=namespace, banner=banner)
ipshell()

这是我使用的那个:https://gist.github.com/4624108所以你只需输入..

>> python console.py your-app-id

答案 2 :(得分:0)

运行 dev_appserver.py 后 你会得到

starting module "default" running at: http://127.0.0.1:8080
Starting admin server at : http://localhost:8000

所以基本上你要做的就是访问http://localhost:8000,你会发现"交互式控制台"你可以用它来玩