在 Python 中,如何使用交互式命令行(和可视断点?)进行调试

2024-04-17

我最近从 Matlab 转向了 Python。 Python 是一种更好的语言(从计算机科学家的角度来看),但 Python IDE 似乎都缺少一件重要的事情:

一个合适的交互式调试器。

我在找:

  • 通过单击编辑器中代码行旁边的图标以图形方式设置断点的能力。

  • 在调试器中停止时运行任何代码的能力,包括从我的代码调用函数、显示新窗口、播放音频等。

  • 当发生错误时,调试器应自动在错误行打开交互式控制台。

  • 使用交互式控制台后,您可以恢复正常执行。

Matlab 具有所有这些功能,而且它们运行得非常好,但我在 Python 工具中找不到它们。

我试过了:

  • PyCharm:交互式控制台很笨重,经常无法显示,并且总是崩溃(我已经尝试了几个不同的版本和操作系统)。

  • IPython:无法设置断点 - 以编程方式启动 Python 控制台:您必须停止代码,插入额外的代码行,然后从头开始再次运行才能执行此操作。另外,如果不重新导入,您就无法访问已导入的函数。

能够在问题第一次出现时进行调试和修复对我来说非常重要,因为我所工作的程序通常需要数十分钟才能重新运行(计算神经科学)。

结论:目前还没有办法在 Python 中完成所有这些工作。让我们希望 PyLab 的发展能够加速。


在代码的顶部写下

import pdb

在代码中,无论您想要调试什么地方,都可以使用以下语句。

pdb.set_trace()

因此,无论何时,您都会有一个交互式 shellset_trace()声明已满足。

然后你可以使用step(s), next(n), continue(c)等等来检查执行流程,并打印变量的值,例如print var

有关 pdb 的更多详细信息,参考这里 http://docs.python.org/2/library/pdb.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中,如何使用交互式命令行(和可视断点?)进行调试 的相关文章

随机推荐