使用AppEngine开发服务器在PyDev中调试控制台

时间:2010-11-02 22:06:25

标签: python eclipse debugging pydev

我正在尝试在Ubuntu上运行的Eclipse / PyDev中调试Google AppEngine项目。

调试通常可以正常工作,但我无法在调试控制台中评估表达式。我相信控制台正在启动AppEngine服务器并暂停等待AppEngine开发服务器结束,因此我无法获得评估提示。

这是调试控制台中的输出:

pydev debugger: warning: psyco not available for speedups (the debugger will still work correctly, but a bit slower)
pydev debugger: starting
/home/eric/src/google_appengine/google/appengine/tools/appcfg.py:42: DeprecationWarning: the sha module is deprecated; use the hashlib module instead
  import sha
/home/eric/src/google_appengine/google/appengine/tools/dev_appserver_login.py:33: DeprecationWarning: the md5 module is deprecated; use hashlib instead
  import md5
INFO     2010-11-02 22:00:13,657 appengine_rpc.py:153] Server: appengine.google.com
INFO     2010-11-02 22:00:13,679 appcfg.py:414] Checking for updates to the SDK.
INFO     2010-11-02 22:00:14,010 appcfg.py:428] The SDK is up to date.
WARNING  2010-11-02 22:00:14,011 datastore_file_stub.py:818] Could not read datastore data from /tmp/dev_appserver.datastore
INFO     2010-11-02 22:00:14,080 dev_appserver_main.py:443] Running application manualent on port 8080: http://localhost:8080

请注意,它永远不会在控制台的末尾打印一个提示,用于输入要评估的表达式。

知道如何获得正确的提示,以便我可以在调试期间评估表达式吗?

2 个答案:

答案 0 :(得分:1)

您是否考虑过使用AppEngine交互式控制台作为应用程序的一部分?

http://code.google.com/appengine/docs/python/tools/devserver.html#The_Development_Console

服务器当前正在使用Python解释器,这就是为什么你永远不会得到提示(因为它只是一个解释器,它已经在使用中);如果您想在服务器的上下文中运行Python表达式,那么开发控制台就是您想要使用的。

第三方开发人员还提供了更多“类似控制台”的交互式Python会话版本:http://con.appspot.com/console/help/about

答案 1 :(得分:0)

尝试使用远程调试功能 - 我在Apache + mod_wsgi上遇到了类似的问题,并通过设置stdoutToServer=TruesterrToServer=True将输出路由到PyDev远程调试器来解决它:

from pydevsrc import pydevd;pydevd.settrace('192.168.2.8', stdoutToServer=True, stderrToServer=True)