Python 交互窗口
Jupyter(前称IPython Notebook)是一个开源项目,允许你轻松将Markdown文本和可执行的Python源代码组合在一个称为笔记本的画布上。Visual Studio Code 原生支持使用 Jupyter Notebooks,也支持通过 Python 代码文件作。本主题涵盖了通过 Python 代码文件提供的支持,并演示如何:
- 与类似Jupyter的编码单元工作
- 在 Python 交互窗口中运行代码
- 使用变量浏览器和数据查看器查看、检查和过滤变量
- 连接到远程Jupyter服务器
- 调试Jupyter笔记本
- 导出Jupyter笔记本
要使用 Jupyter 笔记本,你必须在 VS Code 中激活 Anaconda 环境,或者在你安装了 Jupyter 包的其他 Python 环境中激活。要选择环境,请使用命令面板中的 Python: Select 解释器命令(⇧⌘P(Windows,Linux Ctrl+Shift+P))。
一旦激活了相应环境,你可以创建并运行类似 Jupyter 的代码单元,连接到远程 Jupyter 服务器运行代码单元,并导出 Python 文件作为 Jupyter 笔记本。
Jupyter 码单元
你在 Python 代码中用注释定义类似 Jupyter 的代码单元:# %%
# %%
msg = "Hello World"
print(msg)
# %%
msg = "Hello again"
print(msg)
注意:请务必将上述代码保存在带有.py扩展名的文件中。
当 Python 扩展检测到代码单元时,会添加 Run 单元格和调试单元 CodeLens 装饰。第一个单元格还包含“Run Below”,后续单元格中包含“Run Above”:

注:默认情况下,调试单元只是直接进入用户代码。如果你想进入非用户代码,需要在Jupyter扩展设置中取消勾选“仅仅我的代码调试”(⌘,(Windows,Linux Ctrl+,))。
运行单元只适用于一个代码单元。Run Below(位于第一个单元格)运行文件中的所有代码。Run Above 适用于所有代码单元格,直到带有装饰的单元格,但不包括。例如,你可以用 Run Above 初始化运行时环境的状态,然后再运行该特定单元。
选择命令后启动 Jupyter(如有必要,可能需要一分钟),然后在 Python 交互窗口中运行相应的单元格:

你也可以用 (Ctrl+Enter) 或 Python 终端里的 Python: Run Selection/Line 命令(Shift+Enter)来运行代码单元。使用该命令后,Python 扩展会自动将光标移动到下一个单元格。如果你在文件的最后一个单元格里,扩展名会自动插入另一个分隔符,模拟Jupyter笔记本的行为。# %%
你也可以点击行号左边的边缘来设置断点。然后你可以用调试单元开始该代码单元的调试会话。调试器在断点处停止执行,允许你逐行处理代码并检查变量(详见调试部分)。
附加命令和键盘快捷键
下表列出了在处理代码单元时支持的额外命令和快捷键。
| 指挥 | 键盘快捷键 |
|---|---|
| Python:前往下一个单元 | Ctrl+Alt+] |
| Python:返回上一个单元 | Ctrl+Alt+[ |
| Python:通过上方单元格扩展选择 | Ctrl+Shift+Alt+[ |
| Python:请在下方按单元格扩展选择 | Ctrl+Shift+Alt+] |
| Python:将选定单元格向上移动 | Ctrl+;U |
| Python:将选定单元格向下移动 | Ctrl+;D |
| Python:请在上方插入单元格 | Ctrl+;A |
| Python:请在下方插入单元格 | Ctrl+;B |
| Python:在位置下方插入单元格 | Ctrl+;S |
| Python:删除选中的单元格 | Ctrl+;X |
| Python:将单元切换为代码 | Ctrl+;C |
| Python:将单元格改为Markdown | Ctrl+;M |
使用 Python 交互窗口
前节提到的 Python 交互窗口可以作为独立控制台使用,使用任意代码(带代码单元或不带代码单元)。要将窗口用作控制台,请用命令面板中的 Jupyter: Create Interactive Window 命令打开窗口。然后你可以输入代码,按Enter进入新行,按Shift+Enter执行代码。
要使用带有文件的窗口,请使用命令调色板中的 Jupyter: Run Current File in Python 交互窗口命令。
IntelliSense
Python 交互窗口包含完整的 IntelliSense——代码补全、成员列表、方法快速信息和参数提示。你可以在 Python 交互窗口中打字,就像在代码编辑器里一样高效。

剧情查看器
剧情查看器让你能够更深入地处理你的情节。在查看器中,你可以平移、缩放和当前会话中的图表导航。你还可以导出图表成PDF、SVG和PNG格式。
在 Python 交互窗口中,双击任意图表可在查看器中打开,或选择图表左上角的展开按钮。

注:Python 交互窗口支持用 matplotlib 和 Altair 创建的渲染图。
变量浏览器和数据查看器
在 Python Interactive 窗口中,你可以查看、检查并过滤当前 Jupyter 会话中的变量。在交互式窗口工具栏中选择变量按钮,运行代码和单元格后打开变量资源管理器,你会看到当前变量列表,随着变量的使用自动更新。

如需了解更多关于变量的信息,您也可以双击某行,或使用“在数据查看器中显示变量”按钮,查看数据查看器中变量的更详细视图。打开后,你可以通过搜索行来筛选这些值。

连接到远程Jupyter服务器
你可以通过连接到远程的Jupyter服务器,将Jupyter笔记本中的高计算量分装到其他计算机。连接后,代码单元运行在远程服务器上,而非本地计算机。
连接远程Jupyter服务器:
-
运行Jupyter:在命令面板中指定本地或远程Jupyter服务器的连接命令(⇧⌘P(Windows,Linux Ctrl+Shift+P))。
-
选择你想如何连接到 Jupyter 服务器。

-
如果远程工作,请向服务器的URI(主机名)提供包含认证令牌的
?token=提示时的URL参数。(如果你在VS Code终端启动服务器并启用认证令牌,带令牌的URL通常会出现在终端输出中,你可以从中复制它。)或者,你也可以在提供URI后指定用户名和密码。
-
Python 交互窗口通过显示 URI(下图中对其进行了模糊处理)来显示代码运行位置:

注:为了增强安全性,Microsoft建议在Jupyter服务器上配置安全措施,如SSL和令牌支持。这有助于确保发送到Jupyter服务器的请求得到认证,并且与远程服务器的连接得到加密。关于如何保护笔记本服务器的指导,请参见Jupyter文档。
将 Jupyter 笔记本转换为 Python 代码文件
当你激活安装了 Jupyter 的环境后,可以打开一个 Jupyter 笔记本文件 (.ipynb然后转换成Python代码。转换文件后,你可以像处理其他 Python 文件一样运行代码,同时也可以使用 VS Code 调试器。在 VS Code 中打开和调试笔记本是一种方便的方式,可以发现和解决代码错误,而这在 Jupyter 笔记本中直接完成是较为困难的。
当你打开笔记本文件时,Visual Studio Code 会自动在笔记本编辑器中打开它。使用工具栏上的转换图标将笔记本(.ipynb)文件转换为Python文件(.py)。

选择转换图标,然后选择“Python Script”,等待几秒钟,然后VS Code会打开一个无标题的文件。笔记本的单元格在Python文件中用注释被划分;Markdown 单元格完全转换为前面的注释# %%# %% [折扣],并以HTML形式在交互窗口中渲染,与代码和输出(如图表)并列:

注:第一次在 Python 文件中运行代码单元时,Python 扩展会启动一个 Jupyter 服务器。服务器启动和 Python 交互窗口显示代码结果可能需要一些时间。
调试Jupyter笔记本
Visual Studio Code 调试器允许你逐步检查代码,设置断点,检查状态并分析问题。使用调试器是发现和纠正笔记本代码问题的有用方法。
-
在 VS Code 中,激活安装了 Jupyter 的 Python 环境,如本文开头所述。
-
导入笔记本的
.ipynb如上一节所述,将文件归入 VS Code。(如果你使用云端 Jupyter 环境,如 Azure Notebooks,请先下载文件。) -
启动调试器时,请使用以下选项之一:
- 对于整个笔记本,打开命令面板(⇧⌘P(Windows,Linux Ctrl+Shift+P)),并运行 Jupyter: Debug Current File in Python 交互窗口命令。
- 对于单个单元格,使用显示在单元上方的调试单元装饰。调试器专门从该单元格的代码开始。默认情况下,调试单元只是直接进入用户代码。如果你想进入非用户代码,需要在Jupyter扩展设置中取消勾选“仅仅我的代码调试”(⌘,(Windows,Linux Ctrl+,))。
-
为了熟悉VS Code的一般调试功能,比如检查变量、设置断点及其他活动,请复习VS Code调试。
-
发现问题后,停止调试器,修正代码,保存文件,然后重新启动调试器。
-
当你确认所有代码都正确时。保存文件后,按照下一节的步骤导出笔记本。然后你可以把笔记本上传到你平时的Jupyter环境。
导出Jupyter笔记本
除了打开 Jupyter 笔记本外,您还可以使用命令面板中的以下命令之一(⇧⌘P(Windows,Linux Ctrl+Shift+P))将 VS Code 中的 Python 文件内容导出到 Jupyter 笔记本(使用.ipynb扩展)。
- Jupyter:导出当前 Python 文件为 Jupyter 笔记本:利用当前文件内容创建 Jupyter 笔记本,使用和
# %%# %% [折扣]分隔符用于指定各自的单元格类型。 - Jupyter:导出当前 Python 文件并输出为 Jupyter 笔记本:从当前文件内容创建 Jupyter 笔记本,并包含代码单元的输出。
- Jupyter:将交互窗口导出为 Jupyter 笔记本:从 Python 交互窗口的内容创建 Jupyter 笔记本。
导出内容后,VS Code 会显示一个提示,让你可以通过浏览器打开笔记本。