VS Code 中的 Jupyter Notebook

Jupyter(以前称为 IPython Notebook)是一个开源项目,可让您轻松地将 Markdown 文本和可执行 Python 源代码组合在一个称为笔记本的画布上。Visual Studio Code 支持本机并通过Python 代码文件使用 Jupyter Notebook 。本主题涵盖 Jupyter Notebooks 可用的本机支持,并演示如何:

  • 创建、打开和保存 Jupyter Notebook
  • 使用 Jupyter 代码单元
  • 使用变量浏览器和数据查看器查看、检查和过滤变量
  • 连接到远程 Jupyter 服务器
  • 调试 Jupyter Notebook

设置您的环境

要在 Jupyter Notebooks 中使用 Python,您必须在 VS Code 中激活 Anaconda 环境,或已安装 Jupyter包的另一个 Python 环境。要选择环境,请使用Python:从命令面板中选择解释器命令 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) )。

激活适当的环境后,您可以创建并打开 Jupyter Notebook,连接到远程 Jupyter 服务器以运行代码单元,并将 Jupyter Notebook 导出为 Python 文件。

工作空间信托

开始使用 Jupyter Notebooks 时,您需要确保您在受信任的工作区中工作。有害代码可以嵌入笔记本中,工作区信任功能允许您指示哪些文件夹及其内容应允许或限制自动代码执行。

如果您尝试在 VS Code 位于运行Restricted Mode 的不受信任工作区中时打开笔记本,您将无法执行单元格并且丰富的输出将被隐藏。

创建或打开 Jupyter Notebook

您可以通过从命令面板 ( ⇧⌘P (Windows、Linux Ctrl+Shift+P ) )运行创建:新建 Jupyter Notebook命令或在工作区中创建新文件来创建Jupyter Notebook。.ipynb

空白 Jupyter 笔记本

接下来,使用右上角的内核选择器选择内核。

内核选择器

选择内核后,位于每个代码单元右下角的语言选择器将自动更新为内核支持的语言。

语言选择器

如果您有现有的 Jupyter Notebook,则可以通过右键单击该文件并使用 VS Code 打开或通过 VS Code 文件资源管理器打开它。

运行细胞

拥有笔记本后,您可以使用单元左侧的“运行”图标运行代码单元,输出将直接显示在代码单元下方。

要运行代码,您还可以在命令和编辑模式下使用键盘快捷键。要运行当前单元格,请使用Ctrl+Enter。要运行当前单元格并前进到下一个单元格,请使用Shift+Enter

运行 Jupyter 代码单元

您可以通过选择“运行全部”“运行上方全部”或“运行下方全部”来运行多个单元格。

运行 Jupyter 代码单元

保存您的 Jupyter 笔记本

您可以使用键盘快捷键Ctrl+S文件>保存来保存 Jupyter Notebook 。

导出您的 Jupyter 笔记本

您可以将 Jupyter Notebook 导出为 Python 文件 ( .py)、PDF 或 HTML 文件。要导出,请选择主工具栏上的导出操作。然后您将看到文件格式选项的下拉列表。

将 Jupyter Notebook 转换为 Python 文件

注意:要导出 PDF,您必须安装 TeX。如果没有,当您选择 PDF 选项时,系统会通知您需要安装它。另外,请注意,如果您的 Notebook 中只有 SVG 输出,它们将不会显示在 PDF 中。要在 PDF 中包含 SVG 图形,请确保您的输出包含非 SVG 图像格式,或者您可以先导出为 HTML,然后使用浏览器另存为 PDF。

在笔记本编辑器中使用代码单元

笔记本编辑器可以轻松地在 Jupyter Notebook 中创建、编辑和运行代码单元。

创建代码单元格

默认情况下,空白笔记本将有一个空代码单元供您开始使用,现有笔记本将在底部放置一个代码单元。将您的代码添加到空代码单元格即可开始。

msg = "Hello world"
print(msg)

简单的 Jupyter 代码单元

代码单元模式

使用代码单元时,单元可以处于三种状态:未选择、命令模式和编辑模式。代码单元格和编辑器边框左侧的垂直条显示单元格的当前状态。当没有可见的栏时,该单元格未被选中。选择单元格后,它可以处于命令模式或编辑模式。

未选择的 Jupyter 代码单元格

在命令模式下,单元格左侧将出现一个实心垂直条。该单元可以进行操作并接受键盘命令。

命令模式下的代码单元

在编辑模式下,单元格编辑器周围有一个实心垂直条由边框连接起来。单元格的内容(代码或 Markdown)可以修改。

编辑模式下的代码单元格

要切换模式,您可以使用键盘或鼠标。在键盘上,按Enter键可进入编辑模式,或按Esc键可进入命令模式。使用鼠标单击单元格左侧或代码单元格中代码/Markdown 区域之外的垂直条。

添加额外的代码单元格

您可以使用主工具栏、单元格的添加单元格工具栏(悬停时可见)以及通过键盘命令添加代码单元格。

添加代码单元格

要在当前选定的单元格下方添加新单元格,请使用主工具栏或单元格的悬停工具栏中的加号图标。

当代码单元格处于命令模式时,使用A键在所选单元格上方添加单元格,使用B键在所选单元格下方添加单元格。

选择代码单元格

您可以使用鼠标或键盘上的向上/向下箭头键更改选定的代码单元格。当代码单元处于命令模式时,您还可以使用J键(向下)和K键(向上)。

选择多个代码单元格

要选择多个单元格,请从选定模式下的一个单元格开始。填充的背景表示选定的单元格。要选择连续的单元格,请按住Shift键并单击要选择的最后一个单元格。要选择任何单元格组,请按住Ctrl键并单击要添加到选择中的单元格。

多选单元格

运行单个代码单元

添加代码后,您可以使用单元格左侧的运行图标运行单元格,输出将显示在代码单元格下方。

运行 Jupyter 代码单元

要运行选定的代码单元,您还可以在命令和编辑模式下使用键盘快捷键。Ctrl+Enter运行当前选定的单元格。Shift+Enter运行当前选定的单元格并在紧邻下方插入一个新单元格(焦点移至新单元格)。Alt+Enter运行当前选定的单元格,并在紧邻其下方插入一个新单元格(焦点仍位于当前单元格上)。

运行多个代码单元

运行多个代码单元可以通过多种方式完成。您可以使用笔记本编辑器主工具栏中的双箭头来运行笔记本中的所有单元格,或者使用单元格工具栏中带有方向箭头的运行图标来运行当前代码单元格上方或下方的所有单元格。

运行多个代码单元

移动代码单元格

您可以通过拖放在笔记本中向上或向下移动单元格。对于代码单元格,拖放区域位于单元格编辑器的左侧,如下所示。对于渲染的 Markdown 单元格,您可以单击任意位置来拖放单元格。

移动代码单元格

要移动多个单元格,您可以在所选内容中包含的任何单元格中使用相同的拖放区域。

键盘快捷键Alt+箭头还可以移动一个或多个选定的单元格。

删除代码单元格

要删除代码,您可以使用代码单元工具栏中的“删除”图标。当选定的代码单元处于命令模式时,您可以使用键盘快捷键dd

删除代码单元格

撤消上次更改

您可以使用z键撤消之前的更改,例如,如果您意外进行了编辑,则可以将其撤消到之前的正确状态,或者如果您意外删除了单元格,则可以将其恢复。

在代码和 Markdown 之间切换

笔记本编辑器允许您轻松地在 Markdown 和代码之间更改代码单元格。选择单元格右下角的语言选择器将允许您在 Markdown 和所选内核支持的任何其他语言(如果适用)之间切换。

改变语言

您还可以使用键盘更改单元格类型。当选择单元格并处于命令模式时,M键将单元格类型切换为 Markdown,Y键将单元格类型切换为代码。

设置好 Markdown 后,就可以在代码单元格中输入 Markdown 格式的内容了。

原始 Markdown 显示在代码单元格中

要渲染 Markdown 单元格,您可以选择单元格工具栏中的复选标记,或使用键盘快捷键Ctrl+EnterShift+Enter

如何渲染 Markdown

渲染后的 Markdown 显示在代码单元格中

清除输出或重新启动/中断内核

如果您想清除所有代码单元输出或重新启动/中断内核,可以使用主笔记本编辑器工具栏来完成此操作。

笔记本工具栏

启用/禁用行号

当您处于命令模式时,您可以使用L键在单个代码单元中启用或禁用行编号。

代码单元格中启用的行号

要切换整个笔记本的行编号,请在任何单元格上处于命令模式时使用Shift+L 。

为笔记本启用的行号

目录

要浏览笔记本,请打开活动栏中的文件资源管理器。然后打开侧栏中的大纲选项卡。

目录

注意:默认情况下,大纲只会显示 Markdown。要显示代码单元格,请启用以下设置: 笔记本 > 大纲:显示代码单元格

Jupyter Notebook 编辑器中的 IntelliSense 支持

Python Jupyter Notebook 编辑器窗口具有完整的 IntelliSense – 代码完成、成员列表、方法的快速信息和参数提示。您可以像在代码编辑器中一样在笔记本编辑器窗口中高效地键入内容。

智能感知支持

变量浏览器和数据查看器

在 Python Notebook 中,可以查看、检查、排序和过滤当前 Jupyter 会话中的变量。运行代码和单元格后,通过选择主工具栏中的“变量”图标,您将看到当前变量的列表,该列表将在代码中使用变量时自动更新。变量窗格将在笔记本底部打开。

变量浏览器

变量浏览器

数据查看器

有关变量的其他信息,您还可以双击行或使用变量旁边的“在数据查看器中显示变量”按钮,以在数据查看器中更详细地查看变量。

数据查看器

过滤行

可以通过在每列顶部的文本框中键入内容来过滤数据查看器中的行。输入要搜索的字符串,将找到该列中包含该字符串的任何行:

数据查看器

如果您想找到完全匹配的内容,请在过滤器前加上“=”前缀:

数据查看器

可以通过键入正则表达式来完成更复杂的过滤:

数据查看器

保存地块

要保存笔记本中的绘图,只需将鼠标悬停在输出上并选择右上角的“保存”图标即可。

保存输出

注意:支持渲染使用matplotlibAltair创建的绘图。

自定义笔记本差异

在底层,Jupyter Notebook 是 JSON 文件。JSON 文件中的段呈现为由三个组件组成的单元格:输入、输出和元数据。使用基于行的比较来比较笔记本中所做的更改非常困难且难以解析。笔记本的丰富差异编辑器使您可以轻松查看单元格每个组件的更改。

您甚至可以自定义要在差异视图中显示的更改类型。在右上角,选择工具栏中的溢出菜单项以自定义要包含的单元格组件。输入差异将始终显示。

自定义笔记本差异

要了解有关 VS Code 中的 Git 集成的更多信息,请访问VS Code 中的源代码管理

调试 Jupyter Notebook

调试 Jupyter Notebook 有两种不同的方法:一种称为“按行运行”的更简单模式,以及完全调试模式。

注意:这两个功能都需要 ipykernel 6+。有关安装或升级 ipykernel 的详细信息,请参阅此 wiki 页面。

按线路运行

Run by Line 可让您一次执行一行单元格,而不会被其他 VS Code 调试功能分散注意力。首先,选择单元格工具栏中的“按行运行”按钮:

按线路按钮运行

使用同一按钮前进一项语句。您可以选择单元格“停止”按钮提前停止,或选择工具栏中的“继续”按钮继续运行到单元格末尾。

调试单元

如果您想使用 VS Code 中支持的全套调试功能,例如断点以及单步执行其他单元和模块的功能,则可以使用完整的 VS Code 调试器。

  1. 首先通过单击笔记本单元格的左边距来设置所需的任何断点。
  2. 然后在“运行”按钮旁边的菜单中选择“调试单元”按钮。这将在调试会话中运行单元,并在任何运行的代码中的断点处暂停,即使它位于不同的单元或文件中。.py
  3. 您可以像在 VS Code 中一样使用调试视图、调试控制台以及调试工具栏中的所有按钮。

调试单元格按钮

通过笔记本搜索

您可以使用键盘快捷键Ctrl/Cmd + F搜索笔记本(或通过过滤搜索选项来搜索笔记本的一部分)。单击“过滤器”选项(漏斗图标)进行搜索:

  • Markdown 单元格输入(Markdown 源
  • Markdown 单元输出(渲染 Markdown
  • 代码单元输入(代码单元源
  • 代码单元输出(Cell Output

默认情况下,笔记本搜索仅是过滤的单元格输入。

搜索选项

连接到远程 Jupyter 服务器

您可以通过连接到远程 Jupyter 服务器将 Jupyter Notebook 中的密集计算卸载到其他计算机。连接后,代码单元将在远程服务器而不是本地计算机上运行。

连接到远程 Jupyter 服务器:

  1. 打开笔记本右上角的“内核选择器”按钮(或运行“笔记本:从命令面板中选择笔记本内核”命令)。

    笔记本内核选择器

  2. 选择现有 Jupyter 服务器选项以连接到现有 Jupyter 服务器。

    选择现有的 Jupyter 服务器

  3. 要首次连接到现有服务器,请选择Enter the URL of the running Jupyter server

    选择连接到现有服务器

  4. 当系统提示输入正在运行的 Jupyter 服务器的 URL 时,请提供服务器的 URI(主机名)以及?token=URL 参数中包含的身份验证令牌。(如果在启用了身份验证令牌的 VS Code 终端中启动服务器,则带有令牌的 URL 通常会出现在终端输出中,您可以从其中复制它。)或者,您可以在提供 URI 后指定用户名和密码。

    提示提供 Jupyter 服务器 URI

注意:为了提高安全性,Microsoft 建议使用 SSL 和令牌支持等安全预防措施配置 Jupyter 服务器。这有助于确保发送到 Jupyter 服务器的请求经过身份验证,并且到远程服务器的连接经过加密。有关保护笔记本服务器安全的指南,请参阅Jupyter 文档

数据科学个人资料模板

配置文件可让您根据当前项目或任务快速切换扩展、设置和 UI 布局。为了帮助您开始使用 Jupyter Notebooks,您可以使用数据科学配置文件模板,这是一个精心策划的配置文件,包含有用的扩展、设置和片段。您可以按原样使用配置文件模板,也可以将其用作起点来进一步自定义您自己的工作流程。

您可以通过配置文件>创建配置文件...下拉列表选择配置文件模板:

使用配置文件模板创建配置文件下拉列表

选择配置文件模板后,您可以查看设置和扩展,如果您不想将个别项目包含在新配置文件中,则可以将其删除。根据模板创建新配置文件后,对设置、扩展或 UI 所做的更改将保留在您的配置文件中。