在本地使用AppEngine(即使用dev_appserver.py)时,有没有做一步一步的调试?使用logging.info()或类似的函数来显示代码中所有变量的值并确定错误的位置是过时的方式。AppEngine:分步调试
回答
Eclipse PyDev支持调试和AppEngine。
如果本地的AppEngine过程是一个普通的Python过程中,你有两个选择:
在代码中,地方 “代码断点”:
import pdb; pdb.set_trace()
。正常情况下运行dev_appserver.py
,python调试器在到达代码行时会中断。在pdb中运行
dev_appserver.py
。从外壳:$ python -m pdb dev_appserver.py
。要设置断点,请使用命令b filename.py:linenumber
。然后使用c
命令继续。见http://docs.python.org/library/pdb.html#debugger-commands
要扩大codeape的答案的第一个建议一点点:因为dev_appserver.py用标准输入,标准输出和标准错误扼杀,需要更多的工作来设置“代码断点”。这是否把戏对我来说:
import sys
for attr in ('stdin', 'stdout', 'stderr'):
setattr(sys, attr, getattr(sys, '__%s__' % attr))
import pdb
pdb.set_trace()
你必须在命令行而不是通过GUI应用程序引擎启动运行dev_appserver.py
。当pdb.set_trace()
行被执行时,您将被放入pdb
调试器中。
PyCharm Professional Edition启用开箱即用的逐步调试。
如果您愿意经历几个设置步骤,可以将免费版本PyCharm Community Edition配置为使用Google App Engine python。你不会得到PyCharm专业版的所有优势,比如部署,但你可以一步一步地进行调试,并获得代码导航和自动完成工作。
要启用调试,通过设置编辑PyCharm运行/调试配置:
- 脚本:App Engine的dev_appserver.py
- 脚本参数:
--automatic_restart=no --max_module_instances="default:1" .
- 工作目录:你的基地项目文件夹(其中一个包含app.yaml文件)
有关更多详细说明,说明以及如何在aCyCharm CE pr中完成代码完成工作oject,请参阅http://www.enkisoftware.com/devlogpost-20141231-1-Python_Google_App_Engine_debugging_with_PyCharm_CE.html。
如果你在Windows上工作,你要使用PyTools(微软的Visual Studio社区)调试的Python GAE,看到http://www.enkisoftware.com/devlogpost-20140814-1-Python_Google_App_Engine_debugging_with_PyTools.html
- 1. XSLT分步调试器
- 2. 调试谷歌appengine蟒蛇
- 3. 调试通道API Appengine
- 4. 异步/等待appengine
- 5. 调试Java同步
- 6. 调试 - 下一步?
- 7. timepicker调整分步
- 8. 调试步入和步出VS2015较慢
- 9. 一步一步地调试makefile
- 10. 一步一步调试目标c
- 11. Eclipse Oxygen - 调试问题“一步步”
- 12. Allegro CL,调试功能一步一步
- 13. 调试一步一步回送Api
- 14. OpenCV调试/步入问题
- 15. sql connectionstring逐步调试?
- 16. Groovy调试器不同步
- 17. Emacs + GDB + SCons +逐步调试
- 18. VS2012调试步入PL/SQL
- 19. VS2010:调试WCF服务异步调用
- 20. 如何调试$ http异步调用?
- 21. 在Visual Studio中进行CMake和分步调试
- 22. 部分类调试
- 23. 分离调试器
- 24. 在appengine中同步数据库
- 25. 本地运行AppEngine(调试时),如何清除数据?
- 26. 使用AppEngine开发服务器在PyDev中调试控制台
- 27. 如何调试我的appengine网站处于脱机状态?
- 28. Stackdriver调试appengine错误:找不到python模块
- 29. git - “调试”分支,合并“修复”分支没有“调试”
- 30. 谷歌AppEngine分片问题
第一个没有为我工作。它只是不停止,我似乎得到BdbQuit错误! – Rafid 2010-12-24 10:25:36
第二个为我工作,但它不方便。它从一开始就打破了,而我想在我的代码的某个点上有一个断点。 – Rafid 2010-12-24 10:25:58
要设置断点,请使用命令“b filename.py:linenumber”。然后使用“c”命令继续。请参阅http://docs.python.org/library/pdb.html#debugger-commands – codeape 2010-12-25 18:45:20