调试 Jupyter Notebook:单步执行单元格

mat*_*ash 5 python python-3.x ipdb jupyter-notebook

在空白的 Jupyter 笔记本中,我在单元格中输入以下代码:

from IPython.core.debugger import set_trace
set_trace()
print("hello")
Run Code Online (Sandbox Code Playgroud)

运行单元后,我进入调试模式(第一个屏幕截图)。我想跳到下一行,因此我使用命令 n(ext),就像在 pdb 中一样。但随后我并没有像我预期的那样执行打印命令,而是执行一些内部 IPython 代码(第二个屏幕截图)。如何转到单元格代码中的下一行?

在此输入图像描述

编辑:根据一个答案的建议,我用 替换set_trace()breakpoint()但结果仍然相同。

Vla*_*den 1

Python 3.7 包含内置的Breakpoint()函数。您只需输入:

breakpoint()
Run Code Online (Sandbox Code Playgroud)

无论您希望运行时停止在哪里。您可以使用 pdb 中的相同命令进行下一步、继续、运行...

  • 这当然比导入 set_trace() 并调用它更容易,但它并不能解决我的问题,当我接下来输入时,我仍然会进入 Interactiveshell.py 。 (4认同)