如何在 Jupyter Notebook 中添加断点?

Anu*_*ush 7 python jupyter-notebook

在 Jupyter 笔记本中,如果我有

print("hello")
quit()
Run Code Online (Sandbox Code Playgroud)

在第一个单元格和

print("Good bye")
Run Code Online (Sandbox Code Playgroud)

第二,当我执行“全部运行”时,它会打印hello并且还打印Good bye.

换句话说,quit()似乎只停止单元格本身的执行,而不是整个脚本。

有没有办法在代码中添加断点,以便它在到达时停止执行?

abr*_*rac 15

来自 JupyterLab 文档:

JupyterLab 3.0 现在默认附带调试器前端。

为了使调试器启用并可见,需要一个支持调试的内核。

如果您使用 Pip,请安装 Xeus-Python 内核以及pip install xeus-python.

然后打开 jupyterlab 笔记本,并从工具栏中选择新内核:

选择内核

然后您可以按如下方式调试代码:

在 JupyterLab 中调试

来源:https ://jupyterlab.readthedocs.io/en/stable/user/debugger.html

  • 现在您不需要任何特殊的内核,但必须使用错误图标(位于笔记本顶部栏的右侧)启用调试器。我正在 JupyterLab 3.4、Python 3.10 中使用调试器。 (6认同)
  • 自我注意,不要运行 jupyter notebook,而是运行 jupyter-lab。这是一个不同的界面并允许调试。旧的则不然。 (4认同)
  • 这看起来很令人兴奋! (2认同)

pic*_*olo 12

据我所知,jupyter笔记本没有断点功能,但是你可以添加如下内容:

assert False, "breakpoint"
Run Code Online (Sandbox Code Playgroud)

你想停下来的地方,尽管它不是很优雅。

  • 我只是使用 0/0 来抛出 ZeroDivisionError 并停止执行 (3认同)

nek*_*uuu 8

您可以使用IPython.core.debugger.Pdb来调用pdb。插入以下行以设置断点。

from IPython.core.debugger import Pdb; Pdb().set_trace()
Run Code Online (Sandbox Code Playgroud)

有关调试器命令,请参阅此页面

此外,您可以使用%debug魔法在出错后调用 pdb。%debug如果发生异常,只需键入下一个单元格。然后 pdb 从其堆栈帧运行。


小智 -7

您也许可以尝试exit(),但我不确定这是否正是您所需要的。