Python 交互Windows
Jupyter(以前称为IPython Notebook)是一个开源项目,允许您轻松地将Markdown文本和可执行的Python源代码组合在一个称为笔记本的画布上。Visual Studio Code支持通过Jupyter Notebook文件原生地进行工作,也可以通过Python代码文件进行操作。本主题涵盖了通过Python代码文件提供的支持,并展示了如何:
- 使用类似Jupyter的代码单元格
- 在Python交互Windows中运行代码
- 查看、检查和过滤变量,请使用变量浏览器和数据查看器
- 连接到远程Jupyter服务器
- 调试 Jupyter 笔记本
- 导出 Jupyter 笔记本
要使用Jupyter笔记本,您必须在VS Code中激活一个Anaconda环境,或另一个安装了Jupyter包的Python环境。要选择一个环境,请使用命令面板(⇧⌘P(Windows, Linux Ctrl+Shift+P))中的Python: Select Interpreter命令。
一旦激活了合适的环境,你就可以创建和运行类似Jupyter的代码单元格,连接到远程Jupyter服务器以运行代码单元格,并将Python文件导出为Jupyter笔记本。
Jupyter 代码单元格
您在Python代码中使用一个定义Jupyter-like代码单元格。# %%评论:
# %%
msg = "Hello World"
print(msg)
# %%
msg = "再次你好"
print(msg)
注意:请确保将上面显示的代码保存到具有 .py 扩展名的文件中。
当Python扩展检测到代码单元时,它会添加运行单元和调试单元 CodeLens 装饰。第一个单元还包括在下方运行,所有后续单元包括在上方运行:

注意: 默认情况下,调试单元格 只会步过用户代码。如果您想步进非用户代码,您需要在Jupyter扩展设置中取消选中仅调试我的代码(⌘,(Windows, Linux Ctrl+,))。
运行单元格 仅适用于一个代码单元格。在下方运行,出现在第一个单元格中,会运行文件中的所有代码。在上方运行 适用于从当前单元格到带有装饰的单元格之前的所有代码单元格,不包括该单元格。例如,您会使用在上方运行 来在运行特定单元格之前初始化运行时环境的状态。
选择一个命令会启动Jupyter(如果需要,这可能需要一分钟),然后在Python InteractiveWindows中运行相应的单元格:

您还可以使用 (Ctrl+Enter) 或命令 Python: 在 Python 终端中运行选定的行/单元格 (Shift+Enter) 来运行代码单元格。使用此命令后,Python 扩展会自动将光标移动到下一个单元格。如果您在文件中的最后一个单元格,扩展会自动插入另一个 # %%分隔符用于新的单元格,模仿Jupyter notebook的行为。
你也可以点击行号左侧的空白区域来设置断点。然后你可以使用调试单元格来开始该代码单元格的调试会话。调试器在断点处停止执行,并允许你逐行执行代码并检查变量(详见调试)。
附加命令和键盘快捷键
下表列出了在处理代码单元格时支持的附加命令和键盘快捷键。
| 命令 | 键盘快捷键 |
|---|---|
| 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交互Windows
上一节提到的Python InteractiveWindows,可以作为一个带有任意代码(有或没有代码单元格)的独立控制台使用。要将Windows作为控制台使用,请使用Jupyter: Create Interactive Window命令从命令面板中打开它。然后您可以输入代码,使用Enter键换行,使用Shift+Enter运行代码。
要使用带有文件的Windows,请使用Jupyter: 在Python交互Windows中运行当前文件命令,从命令面板中。
智能感知
Python 交互Windows具有完整的 Intellisense 功能——代码补全、成员列表、方法快速信息和参数提示。您可以在 Python 交互Windows中输入代码,其生产力与在代码编辑器中输入代码的生产力相同。

绘图查看器
绘图查看器使您能够更深入地处理您的绘图。在查看器中,您可以平移、缩放并导航当前会话中的绘图。您还可以将绘图导出为PDF、SVG和PNG格式。
在Python交互Windows中,双击任何图表以在查看器中打开,或选择图表左上角的展开按钮。

注意: Python 交互Windows支持渲染由 matplotlib 和 Altair 创建的图表。
变量浏览器和数据查看器
在Python交互Windows中,可以查看、检查和过滤当前Jupyter会话中的变量。选择交互Windows工具栏中的变量按钮,以在运行代码和单元格后打开变量浏览器。您将看到当前变量的列表,这些变量会随着代码中变量的使用而自动更新。

要了解有关您的变量的更多信息,您还可以双击某一行或使用在数据查看器中显示变量按钮,以在数据查看器中查看变量的更详细视图。打开后,您可以通过搜索行来筛选值。

连接到远程Jupyter服务器
您可以通过连接到远程Jupyter服务器将计算密集型任务从Jupyter notebook卸载到其他计算机。一旦连接,代码单元将在远程服务器上而不是在本地计算机上运行。
连接到远程Jupyter服务器:
-
运行 Jupyter: 指定本地或远程 Jupyter 服务器用于连接 命令从命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)).
-
选择您希望如何连接到Jupyter服务器。

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

注意: 为了增加安全性,微软建议配置您的 Jupyter 服务器,使用诸如 SSL 和令牌支持之类的安全预防措施。这有助于确保发送到 Jupyter 服务器的请求已经过身份验证,并且到远程服务器的连接已加密。有关保护笔记本服务器的指南,请参阅 Jupyter 文档。
将Jupyter notebook转换为Python代码文件
当你激活了一个安装了Jupyter的环境时,你可以打开一个Jupyter笔记本文件 (.ipynb在 VS Code 中打开并将其转换为 Python 代码。一旦你将文件转换为 Python 代码,你就可以像运行其他 Python 文件一样运行代码,并且还可以使用 VS Code 调试器。在 VS Code 中打开和调试笔记本是一种方便的方法来查找和解决代码错误,这在直接在 Jupyter 笔记本中是很难做到的。
当你打开一个笔记本文件时,Visual Studio Code 会自动在 Notebook 编辑器中打开它。使用工具栏上的转换图标将 Notebook (.ipynb) 文件转换为 Python 文件 (.py)。

选择转换图标,然后选择 "Python Script",等待几秒钟,然后 VS Code 在一个未命名的文件中打开转换后的笔记本。笔记本的单元格在 Python 文件中用 分隔。# %%评论;Markdown单元格完全转换为以 开头的评论# %% [markdown],并在代码和输出(如图表)旁边以 HTML 在交互Windows中呈现:

注意: 每次在Python文件中运行代码单元格时,Python扩展都会启动一个Jupyter服务器。服务器启动和Python InteractiveWindows显示代码结果可能需要一些时间。
调试 Jupyter 笔记本
Visual Studio Code 调试器允许您逐行执行代码,设置断点,检查状态并分析问题。使用调试器是查找和修正笔记本代码中问题的有用方法。
-
在 VS Code 中,激活一个安装了 Jupyter 的 Python 环境,如本文开头所述。
-
导入笔记本
.ipynb按照上一节所述将文件导入 VS Code。(如果你使用的是基于云的 Jupyter 环境,如 Azure Notebooks,请先下载文件。) -
要启动调试器,请使用以下选项之一:
- 对于整个笔记本,打开命令面板 (⇧⌘P (Windows, Linux Ctrl+Shift+P)) 并运行 Jupyter: 在 Python 交互Windows中调试当前文件 命令。
- 对于单个单元格,使用出现在单元格上方的调试单元格装饰。调试器会专门从该单元格的代码开始。默认情况下,调试单元格只是进入用户代码。如果你想进入非用户代码,你需要在Jupyter扩展设置中取消勾选仅调试我的代码(⌘,(Windows, Linux Ctrl+,))。
-
为了熟悉 VS Code 的一般调试功能,例如检查变量、设置断点和其他操作,请查看 VS Code 调试。
-
当您发现错误时,请停止调试器,修改您的代码,保存文件,然后再次启动调试器。
-
当您确认所有代码都正确无误时,请保存文件,然后按照接下来的部分描述将笔记本导出。然后,您可以将笔记本上传到您的常规 Jupyter 环境中。
导出 Jupyter 笔记本
除了打开Jupyter notebook,你还可以从命令面板中使用以下命令之一(⇧⌘P(Windows, Linux Ctrl+Shift+P))将VS Code中Python文件的内容导出到Jupyter notebook(使用.ipynb扩展)。
- Jupyter: 将当前Python文件导出为Jupyter Notebook:从当前文件的内容创建一个Jupyter notebook,使用
# %%和# %% [markdown]用分隔符指定各自的细胞类型。 - Jupyter: 导出当前Python文件并将其输出转换为Jupyter Notebook:从当前文件的内容创建一个Jupyter notebook,并包含代码单元格的输出。
- Jupyter: 将交互Windows导出为Jupyter Notebook:从Python交互Windows的内容创建一个Jupyter笔记本。
导出内容后,VS Code 会显示一个提示,通过它可以打开浏览器中的笔记本。