我的Python脚本深层存在高级逻辑错误,而pdb
无助于调试它。有没有其他方法可以在我运行脚本后查看正在执行的内容?
注意:使用pdb
太慢而且不方便 - 我希望我可以在执行函数时查看所有情况,而不是手动检查每个调用,设置/取消设置断点。当我退出pdb
并且其用户界面更加混乱而不是有用时,状态将丢失 - 需要手头的文档。
更新:明确指出pdb
不是一个选项,因此最受欢迎Python debugging tips can not be applied
答案 0 :(得分:1)
我建议使用pdb。你可以使用
import pdb
在脚本的顶部,然后添加行
pdb.set_trace()
您要跟踪问题的代码中的某个位置。当脚本到达该行时,您将拥有一个交互式控制台,您可以在其中检查变量值,运行自己的检查,以及查看正在进行的操作。您可以使用n
执行下一行,或c
继续下一次出现set_trace()
。完整文档在这里:http://docs.python.org/2/library/pdb.html。
如果您有任何具体问题,请与我们联系!
答案 1 :(得分:0)
不,没有神奇的公式。
我最好的建议是使用调试器(如JetBrains的PyCharm)获得一个好的IDE,然后单步执行代码以查看出错的地方。
大多数情况下,这些情况发生是因为您对行为的假设不正确。获取调试器,逐步完成并检查您的假设。
答案 2 :(得分:0)
我找到了一种使用Python附带的优秀trace模块来实现此目的的方法。
如何解决模块安装问题的示例:
python -m trace -t setup.py install > execution.log
这会将setup.py install
执行的所有源代码行转储到execution.log
。我觉得这比pdb
更有用,因为pdb
命令行界面的可用性非常差。