调试器#
JupyterLab 默认情况下附带一个调试器前端。
这意味着可以直接从 JupyterLab 调试笔记本、代码控制台和文件!
要求#
要启用和显示调试器,需要一个支持调试的内核。
以下是已知支持 Jupyter Debug Protocol 的内核列表
xeus-python: Python 编程语言的 Jupyter 内核
xeus-robot: Robot Framework 的 Jupyter 内核
ipykernel: Jupyter 的 IPython 内核
common-lisp-jupyter: Jupyter 的 Common Lisp 内核
其他 Jupyter 内核也可以通过实现 Jupyter Debugger Protocol 来支持调试并与 JupyterLab 调试器兼容。
如果您知道其他支持调试的内核,请打开一个 PR 将它们添加到此列表中。
以下是如何在新 conda
环境中安装 ipykernel
和 xeus-python
的示例
conda create -n jupyterlab-debugger -c conda-forge jupyterlab=3 "ipykernel>=6" xeus-python
conda activate jupyterlab-debugger
用法#
以下是一个启用调试器并设置断点的屏幕截图。下面将更详细地描述各种步骤。

使用支持调试器的内核#
首先,您需要检查内核是否支持调试。如果是,则笔记本右上角的bug图标将被启用。

在笔记本中调试代码#
现在让我们为这个笔记本启用调试器。可以通过在笔记本右上角切换bug按钮来启用调试器

启用调试后,我们可以设置断点并单步执行代码。
让我们定义一个添加两个元素的函数
def add(a, b):
res = a + b
return res
我们可以调用该函数并打印结果
result = add(1, 2)
print(result)
现在让我们回到第一个代码单元格,并单击第 2 行的代码行号旁边的空白处以添加断点

然后让我们通过单击_运行_按钮来执行第二个代码单元格

执行将在设置断点的位置停止

探索代码状态#
使用调试器侧边栏探索代码状态。它显示一个变量资源管理器、一个断点列表、一个源代码预览以及导航调用堆栈的可能性。

变量
可以使用树视图和表格视图来探索变量

调用堆栈
您可以进入代码,并使用调试操作继续执行。

断点
在执行停止时,可以添加和删除新的断点,它们将显示在断点列表中。

源代码
源代码面板显示当前正在调试的文件的源代码。

如果源代码对应于已删除的单元格,单击在主区域打开按钮将打开源代码的只读视图。