为了调试我的python代码,我使用ipdb库,并使用set_trace()命令放置一个断点。一旦代码到达那里,我就会得到一个具有ipdb>提示符的交互式shell,可以使用选项卡自动完成来探索局部变量。
然而,在IPython (木星)笔记本中,ipdb.set_trace()不起作用。正如本文所建议的:使用ipdb在一个单元格(jupyter或Ipython)中调试python代码
我使用以下选项进行交互式调试:
from IPython.core.debugger import Tracer
Tracer()() #this one triggers the debugger这给了我ipdb>提示符,但是选项卡自动完成是不可用的。是否存在使用ipython笔记本启用交互式调试的自动完成功能?这是非常有用的,特别是当你有很多长名字的变量时。
发布于 2018-07-20 16:20:21
在Python3.7中,您可以使用断点()函数
此函数会将您放到调用站点的调试器中。具体来说,它调用sys.breakpointhook(),直接传递args和kws。默认情况下,sys.breakpointhook()调用不需要参数的pdb.set_trace()。在本例中,它纯粹是一个方便的函数,因此您不必显式导入pdb或键入足够多的代码才能进入调试器。但是,可以将sys.breakpointhook()设置为其他函数,断点()将自动调用它,从而允许您进入所选择的调试器。
https://stackoverflow.com/questions/40490412
复制相似问题