交互式调试在IPython (Jupyter)笔记本



为了调试我的python代码,我使用ipdb库,并使用set_trace()命令放置一个断点。一旦代码到达那里,我得到一个带有ipdb>提示符的交互式shell,我可以使用选项卡自动完成来探索局部变量。

在IPython (Jupyter)笔记本中,ipdb.set_trace()不起作用。正如这篇文章所建议的:使用ipdb在一个单元格中调试python代码(jupyter或Ipython)

我使用以下替代方法进行交互式调试:

from IPython.core.debugger import Tracer
Tracer()() #this one triggers the debugger

这给了我ipdb>提示,但是选项卡自动完成不可用。是否有任何方式启用自动完成交互式调试使用ippython笔记本?这是非常有用的,特别是当您有很多长名称的变量时。

在Python 3.7中你可以使用breakpoint()函数

该函数将您置于调用站点的调试器中。具体来说,它调用sys.breakpointhook(),传递参数和已知值直接通过。默认情况下,sys.breakpointhook()调用Pdb.set_trace()不需要参数。在这种情况下,它纯粹是a方便函数,因此您不必显式导入PDB或输入尽可能多的代码以进入调试器。然而,sys.breakpointhook ()可以设置为其他一些函数和断点()将自动调用它,允许您进入所选择的调试器。

相关内容

  • 没有找到相关文章

最新更新