如何在没有pdb的情况下快速调试Python中的行为异常脚本?
我的Python脚本中存在一个高级逻辑错误,如何在没有pdb的情况下快速调试Python中的行为异常脚本?,python,debugging,Python,Debugging,我的Python脚本中存在一个高级逻辑错误,pdb无助于调试它。在我运行脚本后,是否有其他方法可以查看正在执行的内容 注意:使用pdb太慢和不方便了-我希望在执行函数时,我可以忽略所有情况,而不是手动检查每个调用,设置/取消设置断点。当我退出pdb时,状态将丢失,其用户界面更混乱而不是有用-需要手边的文档 更新:明确指出,pdb不是一个选项,因此最流行的不,没有神奇的公式 我最好的建议是使用一个好的IDE和一个调试器,比如JetBrains的PyCharm,然后逐步检查代码,看看哪里出了问题 大
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
命令行界面的可用性很差。可能是重复的哦,是的,“快速”这个词真的有很大的不同,我很抱歉。@。现在请检查是否更清楚。交互式会话对我的情况没有真正的帮助-它不是很快,我无法翻阅这些行并查看已经执行的内容。