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

如何在没有pdb的情况下快速调试Python中的行为异常脚本?,python,debugging,Python,Debugging,我的Python脚本中存在一个高级逻辑错误,pdb无助于调试它。在我运行脚本后,是否有其他方法可以查看正在执行的内容 注意:使用pdb太慢和不方便了-我希望在执行函数时,我可以忽略所有情况,而不是手动检查每个调用,设置/取消设置断点。当我退出pdb时,状态将丢失,其用户界面更混乱而不是有用-需要手边的文档 更新:明确指出,pdb不是一个选项,因此最流行的不,没有神奇的公式 我最好的建议是使用一个好的IDE和一个调试器,比如JetBrains的PyCharm,然后逐步检查代码,看看哪里出了问题 大

我的Python脚本中存在一个高级逻辑错误,
pdb
无助于调试它。在我运行脚本后,是否有其他方法可以查看正在执行的内容

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


更新:明确指出,
pdb
不是一个选项,因此最流行的

不,没有神奇的公式

我最好的建议是使用一个好的IDE和一个调试器,比如JetBrains的PyCharm,然后逐步检查代码,看看哪里出了问题


大多数情况下,这些情况的发生是因为你对不真实的行为做出了假设。获取调试器,逐步检查并检查您的假设

我建议使用pdb。你可以用

import pdb
在脚本的顶部,然后添加行

pdb.set_trace()
您希望跟踪问题的代码中的某个地方。当脚本到达该行时,您将拥有一个交互式控制台,您可以在其中检查变量值,运行自己的检查,并查看发生了什么。您可以使用
n
执行下一行,或使用
c
继续执行下一次出现的
set\u trace()
。完整文档位于此处:


如果您有任何具体问题,请告诉我

我找到了一种使用Python附带的优秀模块来实现这一点的方法

如何解决模块安装问题的示例:

python -m trace -t setup.py install > execution.log

这将把
setup.py install
execution的所有源代码行转储到
execution.log
。我发现这比
pdb
更有用,因为
pdb
命令行界面的可用性很差。

可能是重复的哦,是的,“快速”这个词真的有很大的不同,我很抱歉。@。现在请检查是否更清楚。交互式会话对我的情况没有真正的帮助-它不是很快,我无法翻阅这些行并查看已经执行的内容。