AppEngine: 分步调试

18 投票
5 回答
5573 浏览
提问于 2025-04-16 08:49

在本地使用AppEngine(也就是用dev_appserver.py这个工具)时,有没有办法进行逐步调试?用logging.info()或者类似的函数来显示代码中所有变量的值,找出错误的地方,感觉太过时了。

5 个回答

8

如果你的本地 appengine 进程是一个普通的 Python 进程,你有几个选择:

  1. 在你的代码中放置“代码断点”:import pdb; pdb.set_trace()。正常运行 dev_appserver.py,当代码执行到这一行时,Python 调试器会暂停。

  2. 在 pdb 中运行 dev_appserver.py。在命令行中输入:$ python -m pdb dev_appserver.py。要设置一个断点,可以使用命令 b filename.py:linenumber。然后使用 c 命令继续执行。具体可以查看 这里

更多信息可以参考 pdb 模块文档

12

Eclipse PyDev支持调试和AppEngine。

http://code.google.com/appengine/articles/eclipse.html

15

让我稍微详细解释一下codeape的回答中的第一个建议:因为dev_appserver.py会对输入输出做一些处理,所以设置“代码断点”需要多花点功夫。以下的方法对我有效:

import sys
for attr in ('stdin', 'stdout', 'stderr'):
    setattr(sys, attr, getattr(sys, '__%s__' % attr))
import pdb
pdb.set_trace()

你需要从命令行运行dev_appserver.py,而不是通过图形界面的App Engine Launcher。当执行到pdb.set_trace()这一行时,你会进入pdb调试器。

撰写回答