如何在Jupyter Notebook中添加断点?

时间:2018-06-27 18:08:25

标签: python jupyter-notebook

在Jupyter笔记本中,如果我有

print("hello")
quit()

在第一个单元格中

print("Good bye")

在第二个中,当我执行“全部运行”时,它会同时打印helloGood bye

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

是否有某种方法可以在代码中添加断点,以使其在到达断点时停止执行?

4 个答案:

答案 0 :(得分:5)

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

from IPython.core.debugger import Pdb; Pdb().set_trace()

有关调试器命令,请参见this page

此外,您可以在错误之后使用%debug魔术来调用pdb。如果发生异常,只需在下一个单元格中输入%debug。然后pdb从其堆栈帧开始运行。

答案 1 :(得分:3)

据我所知,Jupyter Notebook没有断点功能,但是您可以添加以下内容:

assert False, "breakpoint"

虽然不是很优雅,但您想停下来的地方。

答案 2 :(得分:3)

来自 JupyterLab 文档:

<块引用>

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

要启用和可见调试器,内核支持 需要调试。

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

然后打开一个 jupyterlab notebook,从工具栏中选择新内核:

Selecting Kernel

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

Debugging in JupyterLab

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

答案 3 :(得分:-1)

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