本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

VS Code 中的 Jupyter 笔记本

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

  • 创建、打开和保存 Jupyter 笔记本
  • 与 Jupyter 代码单元格一起工作
  • 查看、检查和过滤变量,请使用变量浏览器和数据查看器
  • 连接到远程Jupyter服务器
  • 调试 Jupyter Notebook

设置您的环境

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

一旦激活了合适的环境,你就可以创建和打开一个Jupyter Notebook,连接到远程Jupyter服务器以运行代码单元格,并将Jupyter Notebook导出为Python文件。

环境变量

环境变量从一个文件中加载环境变量文件 文件。请参阅 Python 环境文档中的那一部分

工作区信任

在开始使用 Jupyter Notebook 时,您需要确保您在一个值得信赖的工作空间中。有害的代码可以嵌入在 Notebook 中,工作区信任 功能允许您指定哪些文件夹及其内容应允许或限制自动代码执行。

当 VS Code 处于不受信任的工作区运行受限模式时,如果您尝试打开一个笔记本,将无法执行单元格并且丰富输出将被隐藏。

创建或打开一个Jupyter Notebook

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

空白的Jupyter Notebook

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

内核选择器

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

语言选择器

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

运行单元格

运行单个代码单元格

一旦你的代码被添加,你可以使用运行图标来运行单元格,输出将会显示在代码单元格的下面。

运行 Jupyter 代码单元格

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

运行多个代码单元格

运行多个代码单元格可以通过多种方式实现。您可以在Notebook编辑器的主要工具栏中使用双箭头来运行Notebook中的所有单元格,或者选择运行全部运行上面所有,或运行下面所有在当前代码单元格的上面或下面。

运行多个代码单元格

运行章节中的细胞

为了更容易地运行 Notebook 中的相关单元格,您可以使用 在部分中运行单元格 动作来运行由 markdown 部分标题分组在一起的单元格。此动作可在 Notebook 大纲视图和粘性滚动元素上使用。

在Sticky Scroll元素中,右键单击您选择的标题,并通过上下文菜单中的操作运行该部分。在大纲视图中,选择悬停或选择时出现的工具栏图标,然后通过提供的操作运行单个单元格或单元格部分。

保存你的 Jupyter Notebook

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

导出你的 Jupyter Notebook

您可以将Jupyter Notebook导出为Python文件 (.py),PDF,或HTML文件。要导出,请在主工具栏上选择... > 导出。然后您将看到一个下拉菜单,列出各种文件格式选项。

将Jupyter Notebook转换为Python文件

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

在 Notebook 编辑器中处理代码单元格

Notebook编辑器使在Jupyter Notebook中创建、编辑和运行代码单元格变得简单。

创建代码单元格

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

msg = "Hello World"
打印(msg)

简单的 Jupyter 代码单元格

代码单元格模式

在处理代码单元格时,一个单元格可以处于三种状态:未选择、命令模式和编辑模式。在代码单元格左侧和编辑器边界处的垂直条显示了单元格的当前状态。当没有可见的条时,单元格是未选择的。当单元格被选中时,它可以处于命令模式或编辑模式。

未选择的 Jupyter 代码单元格

在命令模式下,一个实心竖线将出现在单元格的左侧。可以对单元格进行操作并接受键盘命令。

命令模式下的代码单元格

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

编辑模式下的代码单元格

要切换模式,您可以使用键盘或鼠标。在您的键盘上,按回车键以进入编辑模式或按Esc键以进入命令模式。用您的鼠标点击单元格左侧的竖线或在代码单元格的代码/Markdown区域外点击。

添加额外的代码单元格

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

添加代码单元格

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

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

选择一个代码单元格

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

选择多个代码单元格

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

多选单元格

移动代码单元格

您可以通过拖动和放置在笔记本内移动单元格。对于代码单元格,拖动和放置区域在单元格编辑器的左侧,如下所示。对于渲染的Markdown单元格,您可以点击任何地方来拖动和放置单元格。

移动代码单元格

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

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

删除一个代码单元格

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

删除一个代码单元格

撤销你的上一次更改

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

在代码和Markdown之间切换

Notebook编辑器允许您轻松地将代码单元格在Markdown和代码之间进行转换。选择单元格右下角的语言选择器,可以切换到Markdown,以及(如果适用)所选内核支持的任何其他语言。

更改语言

你也可以使用键盘来更改单元格类型。当一个单元格被选中并且处于命令模式时,M键将单元格类型切换为Markdown,Y键将单元格类型切换为代码。

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

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

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

如何渲染Markdown

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

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

如果您想清除所有代码单元格的输出或重启/中断内核,可以使用主Notebook编辑器工具栏来完成。

笔记本工具栏

启用/禁用行号

当你在命令模式下,你可以使用L键在单个代码单元格内启用或禁用行号。

代码单元格启用行号

要切换整个笔记本的行号,请在命令模式下使用 Shift+L

为笔记本启用行号

目录

要浏览你的笔记本,请在活动栏中打开文件资源管理器。然后在侧边栏中打开大纲标签。

目录

您可以在大纲视图中使用过滤器控件来包括Markdown标题、代码单元格和代码单元格符号。过滤器对应于以下设置:

  • notebook.outline.showMarkdownHeadersOnly
  • notebook.大纲.显示代码单元格
  • notebook.outline.showCodeCellSymbols

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

Jupyter Notebook 编辑器中的 IntelliSense 支持

Python Jupyter Notebook 编辑器Windows具有完整的 Intellisense 功能——代码补全、成员列表、方法快速信息和参数提示。您可以在 Notebook 编辑器Windows中输入代码,就像在代码编辑器中一样高效。

IntelliSense 支持

变量浏览器和数据查看器

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

变量浏览器

变量浏览器

数据查看器

要了解有关您的变量的更多信息,您还可以双击一行或使用 在数据查看器中显示变量 按钮,以在数据查看器中更详细地查看变量。

数据查看器

或者,您可以使用其他扩展(如Data Wrangler)提供的数据查看体验。Data Wrangler扩展提供了一个丰富的用户界面,可以显示有关您的数据的见解,并帮助您执行数据透视、质量检查、转换等操作。了解更多关于Data Wrangler扩展的信息,请参阅我们的文档

过滤行

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

数据查看器

如果您想找到一个精确匹配,请在过滤器前加上'=':

数据查看器

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

数据查看器

保存图表

要从你的 notebook 保存一个图表,只需将鼠标悬停在输出上并选择右上角的保存 图标。

保存输出

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

自定义笔记本对比

在幕后,Jupyter Notebook 是 JSON 文件。JSON 文件中的段落被渲染为由三个部分组成的单元格:输入、输出和元数据。使用基于行的差异比较在 Notebook 中进行更改是困难且难以解析的。Notebook 的富差异编辑器使您可以轻松查看每个单元格组件的更改。

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

自定义笔记本对比

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

调试 Jupyter Notebook

有两种不同的方法调试Jupyter notebook:一种称为“逐行运行”的简单模式,和完整的调试模式。

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

按行运行

逐行运行行让你可以逐行执行一个单元格,而不受其他 VS Code 调试功能的干扰。要开始,选择单元格工具栏中的逐行运行按钮:

逐行运行按钮

使用相同的按钮向前推进一条语句。你可以选择单元格停止按钮提前停止,或者选择工具栏中的继续按钮继续运行到单元格的末尾。

调试单元

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

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

请注意,在 Jupyter Notebook 中调试单元格不会使用 launch.json 中的任何调试配置。相反,可以通过设置(例如)进行自定义jupyter.调试仅我的代码输入:.

调试单元按钮

在笔记本中搜索

你可以通过使用键盘快捷键 Ctrl/Cmd + F 来搜索笔记本(或通过过滤搜索选项的部分内容)。点击过滤选项(漏斗图标)以搜索:

  • Markdown单元格输入 (Markdown 源)
  • Markdown单元格输出 (渲染的Markdown)
  • 代码单元输入 (代码单元来源)
  • 代码单元输出 (单元输出)

默认情况下,Notebook搜索仅通过单元格输入进行过滤。

搜索选项

连接到远程Jupyter服务器

你可以通过连接到远程Jupyter服务器将计算密集型任务从Jupyter Notebook卸载到其他计算机上。一旦连接,代码单元将在远程服务器上运行而不是在本地计算机上运行。

连接到远程Jupyter服务器:

  1. 点击笔记本右上角的内核选择按钮(或在命令面板中运行 Notebook: 选择 Notebook 内核 命令)。

    笔记本内核选择器

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

    选择现有的 Jupyter 服务器

  3. 首次连接到现有的服务器,请选择 输入正在运行的Jupyter服务器的URL.

    选择连接到现有的服务器

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

    提示提供Jupyter服务器URI

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

数据科学个人简介模板

配置文件 让你根据当前的项目或任务快速切换你的扩展、设置和用户界面布局。为了帮助你开始使用Jupyter Notebook,你可以使用数据科学配置文件模板,这是一个包含有用扩展、设置和片段的精选配置文件。你可以直接使用配置文件模板,或者将其作为起点进一步自定义以适应你自己的工作流程。

您通过 配置文件 > 创建配置文件... 下拉菜单选择一个配置文件模板:

创建带有配置文件模板的配置文件下拉菜单

一旦你选择了一个配置文件模板,你就可以查看设置和扩展,如果你不希望将某些项目包含在新的配置文件中,可以移除它们。在基于模板创建新的配置文件后,对设置、扩展或用户界面所做的更改将持久化到你的配置文件中。