如何在没有pdb的情况下快速调试Python中行为不端的脚本?

时间:2014-01-01 14:10:47

标签: python debugging

我的Python脚本深层存在高级逻辑错误,而pdb无助于调试它。有没有其他方法可以在我运行脚本后查看正在执行的内容?

注意:使用pdb太慢而且不方便 - 我希望我可以在执行函数时查看所有情况,而不是手动检查每个调用,设置/取消设置断点。当我退出pdb并且其用户界面更加混乱而不是有用时,状态将丢失 - 需要手头的文档。

更新:明确指出pdb不是一个选项,因此最受欢迎Python debugging tips can not be applied

3 个答案:

答案 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命令行界面的可用性非常差。