在Jupyter笔记本中,如果我有
print("hello")
quit()
在第一个单元格中
print("Good bye")
在第二个中,当我执行“全部运行”时,它会同时打印hello
和Good bye
。
换句话说,quit()
似乎只会停止执行单元本身,而不是整个脚本。
是否有某种方法可以在代码中添加断点,以使其在到达断点时停止执行?
答案 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,从工具栏中选择新内核:
然后您可以按如下方式调试您的代码:
来源:https://jupyterlab.readthedocs.io/en/stable/user/debugger.html
答案 3 :(得分:-1)
您可能可以尝试exit()
,但是我不确定这是否正是您所需要的。