运行和调试 Jupyter Notebook 代码单元
最后修改时间:2023 年 11 月 9 日您可以使用笔记本工具栏和单元工具栏上的图标、代码单元上下文菜单的命令(右键单击代码单元将其打开)以及主菜单的运行命令以多种方式执行笔记本单元的代码。请注意,当您使用本地笔记本时,无需提前启动任何 Jupyter 服务器:只需执行任何单元,服务器就会启动。
运行代码单元格
使用以下智能快捷方式快速运行代码单元:
CtrlEnter:运行当前单元格。
ShiftEnter:运行当前单元格并选择其下方的单元格。
一次执行一个单元时,请注意代码依赖性。如果一个单元依赖于另一个单元中的某些代码,则应首先执行该单元。
执行完成后,单元格保持编辑模式,以便您可以根据需要对其进行修改,并继续进行试验。
在单元格的左下角,您可以找到有关上次单元格执行的信息。它包括执行持续时间以及执行完成的日期和时间。
如果出现任何错误,请展开Traceback节点以查看完整的错误消息。
要执行笔记本中的所有代码单元,请单击笔记本工具栏上的或按。CtrlAltShiftEnter
查看变量
Jupyter 变量工具窗口
警告
此功能仅适用于本地Jupyter 服务器内核。
执行笔记本时,您可以在 Jupyter工具窗口的“变量”选项卡中预览变量。
默认情况下,变量是异步加载的。要更改加载策略,请单击“变量”选项卡,选择“变量加载策略”,然后选择一种可用模式。有关更多详细信息,请参阅管理变量加载策略。
您可以单击变量右侧的链接以表格形式预览其值。
数据视觉
除了在“变量”选项卡中查看变量的值之外,您还可以在编辑器中预览它们。
转到设置 | 语言和框架 | Jupyter并确保启用在编辑器中显示内联值复选框。
运行笔记本单元。变量的值显示在其用途旁边:
预览参考文档
使用 PyCharm,您始终可以快速预览特定变量、类型或参数的参考文档。
要查看特定代码单元格的任何元素的参考信息,请将脱字符号放在目标代码单元格内并键入
? <type/variable/argument>
。(在此示例中,您将预览 的文档plt.scatter
)。请注意,代码元素应可在代码单元内访问。执行单元格。Jupyter工具窗口中将打开“自省”选项卡。
在“自省”选项卡中预览参考文档。
请注意,“内省”选项卡显示最新请求的代码元素的文档。即使您继续执行其他代码单元、重新启动服务器或删除包含请求的行,也会显示此信息。
在 Jupyter 笔记本中调试代码
PyCharm 为本地和远程 Jupyter 服务器内核提供 Jupyter Notebook 调试器。
警告
目前远程 Jupyter 服务器不支持以下调试功能:
进入库代码
调试控制台
智能步入
运行到光标处
走出去
使用多处理和线程调试代码
渐进式加载大型数组
在选定的单元格中设置断点 Alt + Shift + Enter ,然后按(对于 Windows)或⌥⇧⏎对于 macOS。或者,您可以右键单击该单元格,然后从上下文菜单中选择“调试单元格” 。
Jupyter Notebook 调试器工具窗口将打开。
使用步进工具栏按钮 步进工具栏选择接下来要停止的行,并切换到“调试器”选项卡以预览变量值:
调试是在单个代码单元内执行的。但是,如果您的代码单元从已调试的任何单元调用函数,您可以单步执行该函数。相关断点也将起作用。请注意,具有该功能的单元必须进行调试,而不仅仅是执行。
警告
如果您更改单元格的源代码或不在调试器下执行它,调试器可能会跳过单元格。此外,在调试会话期间尝试修改单元代码时,您可能会看到一条警告消息。
同样,您可以单步执行从位于同一项目中的 Python 文件调用的函数。
继续执行调试步骤以完成单元的执行。
踩踏动作
物品 | 工具提示和快捷方式 | 描述 |
---|---|---|
调试器工具栏上可用的操作。 | ||
跨过 F8 | 单击此按钮执行程序,直到当前方法或文件中的下一行,跳过当前执行点引用的方法(如果有)。如果当前行是该方法中的最后一行,则执行将跳至该方法之后立即执行的行。 | |
步入 F7 | 单击此按钮可使调试器单步执行在当前执行点调用的方法。 | |
走出去 ShiftF8 | 单击此按钮可使调试器跳出当前方法,转到紧随其后执行的行。 | |
通过单击“调试器”工具栏上的 可以使用其他步进操作。 | ||
强行跨过 | 跳过当前代码行并将您带到下一行,即使突出显示的行中包含方法调用也是如此。如果调用的方法中有断点,它们将被忽略。 | |
智能步入 | 当一行上有多个方法调用并且您想要具体输入哪个方法时,智能单步执行会很有帮助。此功能允许您选择您感兴趣的方法调用。 | |
运行到光标处 AltF9 | 单击此按钮可恢复程序执行并暂停,直到执行点到达编辑器中当前插入符号位置的行。不需要断点。实际上,在插入符号处为当前行设置了一个临时断点,一旦程序执行暂停,该断点就会被删除。因此,如果插入符位于已经执行过的行,则程序将恢复以进一步执行,因为无法回滚到之前的断点。当您深入了解方法序列并需要立即退出多个方法时,此操作特别有用。 如果在到达指定行之前为应执行的行设置了断点,则调试器将在第一个遇到的断点处暂停。 | |
强制运行到光标处 | 继续执行,直到到达插入符号的位置。途中的所有断点都将被忽略。 |
感谢您的反馈意见!