# 运行和调试 Jupyter notebook 代码单元

> For the complete documentation index, see [llms.txt](https://www.jetbrains.com.cn/help/idea/llms.txt).

> **Warning:**
> 以下内容仅在 Python 和 Jupyter 插件 [已安装并启用](managing-plugins.html)时有效！

您可以通过多种方式执行 notebook 单元格的代码，例如使用 notebook 工具栏上的图标、代码单元格上下文菜单中的命令、结构工具窗口中的命令，以及边距中的   运行  图标。

> **Note:**
> 处理本地 Notebook 时，无需预先启动任何 Jupyter 服务器：执行任意单元，服务器即会启动。

## 运行代码单元

Procedure: 使用快捷键和工具栏选项运行代码单元格

* 使用以下智能快捷键可快速运行代码单元：

* `Ctrl+Enter` (Windows), `Ctrl+Enter` (macOS), `Ctrl+Enter` (IntelliJ IDEA Classic (macOS)), `Ctrl+Enter` (macOS System Shortcuts), `Ctrl+Enter` (XWin), `Ctrl+Enter` (GNOME), `Ctrl+Enter` (KDE), `Ctrl+Enter` (Emacs), `Ctrl+Enter` (Sublime Text), `Ctrl+Enter` (Sublime Text (macOS)), `Ctrl+Enter` (Visual Studio), `Ctrl+Enter` (Visual Studio (macOS)), `Ctrl+Enter` (NetBeans), `Ctrl+Enter` (Eclipse), `Ctrl+Enter` (Eclipse (macOS))：运行当前单元格。

* `Shift+Enter` (Windows), `Shift+Enter` (macOS), `Shift+Enter` (IntelliJ IDEA Classic (macOS)), `Shift+Enter` (macOS System Shortcuts), `Shift+Enter` (XWin), `Shift+Enter` (GNOME), `Shift+Enter` (KDE), `Shift+Enter` (Emacs), `Shift+Enter` (Sublime Text), `Shift+Enter` (Sublime Text (macOS)), `Shift+Enter` (Visual Studio), `Shift+Enter` (Visual Studio (macOS)), `Shift+Enter` (NetBeans), `Shift+Enter` (Eclipse), `Shift+Enter` (Eclipse (macOS))：运行当前单元格并选中下面的单元格。

> **Note:**
> 当每次执行一个单元格时，请注意代码依赖关系。 如果某个单元格依赖于另一个单元格中的某些代码，则应先执行该单元格。

执行完成后，单元格仍处于编辑模式，您可以根据需要对其进行修改并继续试验。

在编辑模式下，按 `Ctrl+Home` (Windows), `⌘ Home` (macOS), `⌘ Home` (IntelliJ IDEA Classic (macOS)), `⌘ ↑` (macOS System Shortcuts), `Ctrl+Home` (XWin), `Ctrl+Home` (GNOME), `Ctrl+Home` (KDE), `Ctrl+Home` (Emacs), `Ctrl+Home` (Sublime Text), `⌘ ↑` (Sublime Text (macOS)), `Ctrl+Home` (Visual Studio), `⌘ Home` (Visual Studio (macOS)), `Ctrl+Home` (NetBeans), `Ctrl+Home` (Eclipse), `⌘ Home` (Eclipse (macOS))将光标移动到当前单元格的开头，或按 `Ctrl+End` (Windows), `⌘ End` (macOS), `⌘ End` (IntelliJ IDEA Classic (macOS)), `⌘ ↓` (macOS System Shortcuts), `Ctrl+End` (XWin), `Ctrl+End` (GNOME), `Ctrl+End` (KDE), `Ctrl+End` (Emacs), `Ctrl+End` (Sublime Text), `⌘ ↓` (Sublime Text (macOS)), `Ctrl+End` (Visual Studio), `⌘ End` (Visual Studio (macOS)), `Ctrl+End` (NetBeans), `Ctrl+End` (Eclipse), `⌘ End` (Eclipse (macOS))将光标移动到单元格的末尾。

* 要执行 Notebook 中的所有代码单元，请点击 ![全部运行](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.actions.runAll.svg)，它位于 [Notebook 工具栏](jupyter-notebook-support.html#toolbar) 上。

* 在命令模式下，按 `Ctrl+Home` (Windows), `⌘ Home` (macOS), `⌘ Home` (IntelliJ IDEA Classic (macOS)), `⌘ ↑` (macOS System Shortcuts), `Ctrl+Home` (XWin), `Ctrl+Home` (GNOME), `Ctrl+Home` (KDE), `Ctrl+Home` (Emacs), `Ctrl+Home` (Sublime Text), `⌘ ↑` (Sublime Text (macOS)), `Ctrl+Home` (Visual Studio), `⌘ Home` (Visual Studio (macOS)), `Ctrl+Home` (NetBeans), `Ctrl+Home` (Eclipse), `⌘ Home` (Eclipse (macOS))聚焦到第一个单元格，或按 `Ctrl+End` (Windows), `⌘ End` (macOS), `⌘ End` (IntelliJ IDEA Classic (macOS)), `⌘ ↓` (macOS System Shortcuts), `Ctrl+End` (XWin), `Ctrl+End` (GNOME), `Ctrl+End` (KDE), `Ctrl+End` (Emacs), `Ctrl+End` (Sublime Text), `⌘ ↓` (Sublime Text (macOS)), `Ctrl+End` (Visual Studio), `⌘ End` (Visual Studio (macOS)), `Ctrl+End` (NetBeans), `Ctrl+End` (Eclipse), `⌘ End` (Eclipse (macOS))聚焦到 notebook 的最后一个单元格。

Procedure: 代码单元执行时长

* 您可以在单元格左下角找到有关单元格执行时间的信息。

将鼠标悬停在此区域以查看单元格执行完成的日期和时间。

![有关最后一个单元格执行的信息](https://resources.jetbrains.com.cn/help/img/idea/2026.3/last_cell_execution_info.png)

如有任何错误，请展开   回溯   节点以查看完整的错误消息。

![错误回溯](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_ds_error_traceback.png)

当您 [停止服务器](configuring-jupyter-notebook.html#stop-server)并 [更改服务器或内核](configuring-jupyter-notebook.html#setup-configured-server)时，您必须再次执行所有具有依赖性的单元，因为执行结果仅对当前服务器会话有效。

## 监控内核内存用法

IntelliJ IDEA 显示活动 Jupyter 内核的内存消耗。 微件会在内核运行时实时更新，这样可以避免因内存不足而导致的计算失败。

要显示或隐藏微件，请点击 [Jupyter 变量](#variables)工具窗口左上角的按钮。

![Jupyter 内存微件](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_jupyter_memory_widget.png)

## 查看变量

Procedure: Jupyter 控制台

默认情况下，本地和远程内核均启用此功能性。 若要对远程内核禁用此功能，请转到  `设置 | 工具 | Jupyter | Jupyter 常规`  并取消选中   将支持库上传到远程 Jupyter   复选框。

执行 Notebook 时，可以在   变量   选项卡中预览变量，该选项卡位于 [Jupyter 控制台](jupyter-notebook-support.html#jupyter-console)。

![Jupyter 控制台：变量选项卡](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_jupyter_variable_view.png)

默认情况下，变量会异步加载。 要更改加载策略，请点击 ![管理加载策略](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.general.settings.svg)，位于   变量  选项卡中，选择   变量加载策略  ，然后选择一个可用模式：

* 同步 ：变量会一起加载。

* 异步 ：变量会单独加载。

* 按需 ：变量会按用户请求加载。

您可以点击   数组视图  、   以 DataFrame 视图显示  、   作为图像查看  或   查看为系列  以在相应的工具窗口中显示数据。 有关更多信息，请参阅 [使用输出](working-with-cell-outputs.html)。

Procedure: Jupyter Variables 工具窗口

每次执行单元时，都会显示   Jupyter 变量   工具窗口。 如果需要永久隐藏它，请转到  `设置 | 工具 | Jupyter | Jupyter 常规`  并取消选中   执行时显示“变量”工具窗口   复选框。

![Jupyter Variables 工具窗口](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_jupyter_variables_tool_window.png)

Procedure: 数据视图

若要直接在编辑器中预览变量，请转到  `设置 | 工具 | Jupyter | Jupyter 常规`  并确保已启用   显示内联值   复选框。

1. 运行笔记本单元格。 变量的值显示在其用法旁边：

在整个 Notebook 中:

![在源编辑器中内联变量](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_ds_jupyter_inline_variables.png)

在当前行:

![在源编辑器中内联变量](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_ds_jupyter_inline_variables_line.png)

2. 点击该变量，可在弹出窗口中查看详细信息。

![在编辑器中弹出窗口预览变量](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_preview_variable.png)

## 预览参考文档

使用 IntelliJ IDEA，您可以随时快速预览特定变量、类型或参数的参考文档。

Procedure:

1. 要查看特定代码单元中任何元素的参考信息，请将文本光标置于目标代码单元内并键入  `? <类型/变量/参数>` 。 （在此示例中，您将预览  `plt.scatter`  的文档。） 注意，代码元素应该在代码单元格内可访问。

2. [执行单元格](#execute-cell)。   内省   选项卡在   Jupyter   工具窗口中打开。

![预览 plt.scatter 的参考文档](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_ds_jupyter_introspection.png)

3. 请在   内省  选项卡中预览参考文档。

> **Note:**
> 内省  选项卡显示最新请求的代码元素的文档。 即使您继续执行其他代码单元、重启服务器或删除包含您的请求的行，此信息也将显示。

## 在 Jupyter 笔记本中调试代码

IntelliJ IDEA 为本地和远程 Jupyter 服务器内核均提供 Jupyter Notebook 调试器。

> **Warning:**
> [Google Colab](null) 服务器不支持调试。

Procedure:

PyCharm 支持使用   debugpy 中文调试器库  和   pydevd  调试 Jupyter Notebook。 默认情况下，PyCharm 使用   debugpy 中文调试器库  。

要更改调试器实现，请在   调试  工具窗口右上角使用   调试器模式  选择器。

> **Tip:**
> 所选的调试器模式也会决定调试会话所用的 Jupyter 运行环境。 在 debugpy 模式下，所有 Notebook 调试功能都使用 debugpy。 在 pydevd 模式下，将使用 pydevd。

![Debugpy 下拉菜单](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_debugpy_dropdown.png)

> **Note:**
> 对于远程 Jupyter 会话，IntelliJ IDEA 总是使用   pydevd  ，并且   调试器模式  选择器会被隐藏。

1. 在选定的单元中设置 [断点](using-breakpoints.html)，然后点击单元工具栏中的 ![调试单元](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.run.debug.svg)  `调试单元` 。 或者，您可以右键点击单元格，然后从上下文菜单中选择  `调试单元` 。

调试  工具窗口已打开。

![Jupyter Notebook 调试工具窗口](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_jupyter_debug_start.png)

2. 请使用 [stepping toolbar](#stepping-toolbar)按钮选择您下一次要在哪一行停止。

调试在单个代码单元内进行。 但是，如果您的代码单元格调用了已经调试过的任何单元格中的函数，您可以单步进入它。 相关断点也将起作用。 请注意，必须调试包含该函数的单元，而不仅仅是执行。

> **Warning:**
> 如果您更改其源代码或未在调试器下执行单元，调试器可能会跳过该单元。 此外，您在调试会话期间尝试修改单元格代码时，可以看到一条警告消息。

同样，您可以调试进入位于同一项目中的 Python 文件调用的函数。

3. 继续调试步骤以完成单元的执行。

![调试已完成](https://resources.jetbrains.com.cn/help/img/idea/2026.3/py_jupyter_debug_finish.png)

## 单步执行操作

|  条目  |  工具提示和快捷键  |  描述  |
| --- | --- | --- |
|  在调试器工具栏上可用的操作。  |
|  ![步过](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.stepOver.svg)  |     步过       `F8` (Windows), `F8` (macOS), `F8` (IntelliJ IDEA Classic (macOS)), `⌘ Quote` (macOS System Shortcuts), `F8` (XWin), `F8` (GNOME), `F8` (KDE), `F8` (Emacs), `F8` (Sublime Text), `F8` (Sublime Text (macOS)), `F10` (Visual Studio), `F10` (Visual Studio (macOS)), `F8` (NetBeans), `F6` (Eclipse), `F6` (Eclipse (macOS))     |  点击此按钮以执行程序，直到当前方法或文件中的下一行，跳过当前执行点引用的方法（如果有）。 如果当前行是方法中的最后一行，则在此方法之后立即执行到该行的执行步骤。  |
|  ![步入](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.stepInto.svg)  |     步入       `F7` (Windows), `F7` (macOS), `F7` (IntelliJ IDEA Classic (macOS)), `⌘ ;` (macOS System Shortcuts), `F7` (XWin), `F7` (GNOME), `F7` (KDE), `F7` (Emacs), `F7` (Sublime Text), `F7` (Sublime Text (macOS)), `F11` (Visual Studio), `⌘ F11` (Visual Studio (macOS)), `F7` (NetBeans), `F5` (Eclipse), `F5` (Eclipse (macOS))     |     点击此按钮以使调试器进入当前执行点调用的方法。     |
|  ![步出](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.stepOut.svg)  |     步出       `Shift+F8` (Windows), `⇧ F8` (macOS), `⇧ F8` (IntelliJ IDEA Classic (macOS)), `⌘ \` (macOS System Shortcuts), `Shift+F8` (XWin), `Shift+F8` (GNOME), `Shift+F8` (KDE), `Shift+F8` (Emacs), `Shift+F8` (Sublime Text), `⇧ F8` (Sublime Text (macOS)), `Shift+F11` (Visual Studio), `⇧ F11` (Visual Studio (macOS)), `Ctrl+F7` (NetBeans), `F7` (Eclipse), `F7` (Eclipse (macOS))     |  点击此按钮可使调试器退出当前方法，并跳至其后执行的行。  |
|  通过点击调试器工具栏上的 ![更多步进操作](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app-client.expui.general.moreVertical.svg)，可以执行其他步进操作。  |
|  ![强制步过](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.forceStepOver.svg)  |     强制步过       `Alt+Shift+F8` (Windows), `⌥ ⇧ F8` (macOS), `⌥ ⇧ F8` (IntelliJ IDEA Classic (macOS)), `⌥ ⇧ Quote` (macOS System Shortcuts), `Alt+Shift+F8` (XWin), `Alt+Shift+F8` (GNOME), `Alt+Shift+F8` (KDE), `Alt+Shift+F8` (Emacs), `Alt+Shift+F8` (Sublime Text), `⌥ ⇧ F8` (Sublime Text (macOS)), `Alt+Shift+F8` (Visual Studio), `⌥ ⇧ F8` (Visual Studio (macOS)), `Alt+Shift+F8` (NetBeans), `Alt+Shift+F8` (Eclipse), `⌘ ⌃ F6` (Eclipse (macOS))     |  逐步执行当前代码行，并转到下一行，即使高亮行中有方法调用。 如果在被调用方法中有断点，它们会被忽略。  |
|  ![强制单步执行](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.forceStepInto.svg)  |     强制步入    `Alt+Shift+F7` (Windows), `⌥ ⇧ F7` (macOS), `⌥ ⇧ F7` (IntelliJ IDEA Classic (macOS)), `⌥ ⇧ ;` (macOS System Shortcuts), `Alt+Shift+F7` (XWin), `Alt+Shift+F7` (GNOME), `Alt+Shift+F7` (KDE), `Alt+Shift+F7` (Emacs), `Alt+Shift+F7` (Sublime Text), `⌥ ⇧ F7` (Sublime Text (macOS)), `Alt+F11` (Visual Studio), `⌥ F11` (Visual Studio (macOS)), `Alt+Shift+F7` (NetBeans), `Alt+Shift+F7` (Eclipse), `⌘ ⌃ F5` (Eclipse (macOS))  |  点击此按钮可让调试器步入当前执行点调用的方法，即使该方法将被跳过。  |
|  ![智能步入](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.smartStepInto.svg)  |     智能步入    `Shift+F7` (Windows), `⇧ F7` (macOS), `⇧ F7` (IntelliJ IDEA Classic (macOS)), `⌘ ⌥ ;` (macOS System Shortcuts), `Shift+F7` (XWin), `Shift+F7` (GNOME), `Shift+F7` (KDE), `Shift+F7` (Emacs), `Shift+F7` (Sublime Text), `⇧ F7` (Sublime Text (macOS)), `Shift+F7` (Visual Studio), `⇧ F7` (Visual Studio (macOS)), `Shift+F7` (NetBeans), `Ctrl+F5` (Eclipse), `⌥ F5` (Eclipse (macOS))  |  智能步入在一行中有多个方法调用时非常有用，您可以指定要进入的方法。 此功能允许您选择您感兴趣的方法调用。  |
|  ![运行至光标处](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.runToCursor.svg)  |     运行至光标处       `Alt+F9` (Windows), `⌥ F9` (macOS), `⌥ F9` (IntelliJ IDEA Classic (macOS)), `⌃ ⇧ \` (macOS System Shortcuts), `Alt+Shift+9` (XWin), `Alt+Shift+9` (GNOME), `Alt+Shift+9` (KDE), `Alt+F9` (Emacs), `Alt+F9` (Sublime Text), `⌥ F9` (Sublime Text (macOS)), `Ctrl+F10` (Visual Studio), `⌘ F10` (Visual Studio (macOS)), `F4` (NetBeans), `Ctrl+R` (Eclipse), `⌘ R` (Eclipse (macOS))     |     点击此按钮以恢复程序执行，并在执行点到达编辑器中当前光标位置的行时暂停。 不需要断点。 实际上，在光标处为当前行设置了一个临时断点，一旦程序执行暂停，该断点就会被移除。 因此，如果文本光标定位在已经执行的行，程序将只会继续执行，因为无法回滚到之前的断点。 此操作在您已经深入方法序列并需要一次退出多个方法时尤其有用。       如果在应该执行的行上设置了断点，在到达指定行之前，调试器会在遇到的第一个断点处暂停。      > **Tip:** > 在指定行需要一种临时断点且不应中断程序执行时，请使用此操作。    |
|  ![强制运行至光标处](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.forceRunToCursor.svg)  |     强制运行至光标处       `Ctrl+Alt+F9` (Windows), `⌘ ⌥ F9` (macOS), `⌘ ⌥ F9` (IntelliJ IDEA Classic (macOS)), `⌃ ⌥ ⇧ \` (macOS System Shortcuts), `Ctrl+Alt+9` (XWin), `Ctrl+Alt+9` (GNOME), `Ctrl+Alt+9` (KDE), `Ctrl+Alt+F9` (Emacs), `Ctrl+Alt+F9` (Sublime Text), `⌘ ⌥ F9` (Sublime Text (macOS)), `Ctrl+Alt+F9` (Visual Studio), `⌘ ⌥ F9` (Visual Studio (macOS)), `Ctrl+Alt+F9` (NetBeans), `Ctrl+Alt+F9` (Eclipse), `⌘ ⌥ F9` (Eclipse (macOS))     |  直到光标位置为止继续执行。 所有中途的断点都将被忽略。  |
|  ![显示执行点](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.showCurrentFrame.svg)  |     显示执行点    `Alt+F10` (Windows), `⌥ F10` (macOS), `⌥ F10` (IntelliJ IDEA Classic (macOS)), `⌥ F10` (macOS System Shortcuts), `Alt+F10` (XWin), `Alt+Shift+0` (GNOME), `Alt+Shift+0` (KDE), `Alt+F10` (Emacs), `Alt+F10` (Sublime Text), `⌥ F10` (Sublime Text (macOS)), `Alt+NumPad *` (Visual Studio), `⌥ NumPad *` (Visual Studio (macOS)), `Alt+F10` (NetBeans), `Alt+F10` (Eclipse), `⌥ F10` (Eclipse (macOS))  |  点击此按钮可在编辑器中高亮显示当前执行点，并在   帧   窗格中显示相应的堆栈帧。  |
|  ![计算表达式](https://resources.jetbrains.com.cn/help/img/idea/2026.3/app.expui.run.evaluateExpression.svg)  |     计算表达式    `Alt+F8` (Windows), `⌥ F8` (macOS), `⌥ F8` (IntelliJ IDEA Classic (macOS)), `⌘ ⌃ L` (macOS System Shortcuts), `Alt+F8` (XWin), `Alt+Shift+8` (GNOME), `Alt+Shift+8` (KDE), `Alt+F8` (Emacs), `Alt+F8` (Sublime Text), `⌥ F8` (Sublime Text (macOS)), `Shift+F9` (Visual Studio), `⇧ F9` (Visual Studio (macOS)), `Ctrl+F9` (NetBeans), `Ctrl+U` (Eclipse), `⌘ U` (Eclipse (macOS))  |  点击此按钮以 [计算表达式](examining-suspended-program.html#evaluating-expressions)。  |

## See also

### 外部链接

[Jupyter Notebook](http://nbviewer.ipython.org/github/ipython/ipython/blob/2.x/examples/Notebook/Index.ipynb)

