Python 交互窗口

Jupyter(前身为 IPython Notebook)是一个开源项目,可让你在名为笔记本的画布上轻松结合 Markdown 文本和可执行的 Python 源代码。Visual Studio Code 不仅支持通过 Python 代码文件,还支持原生使用 Jupyter Notebooks。本主题涵盖了通过 Python 代码文件提供的支持,并演示了如何

  • 使用类 Jupyter 代码单元格
  • 在 Python 交互窗口中运行代码
  • 使用变量资源管理器和数据查看器查看、检查和过滤变量
  • 连接到远程 Jupyter 服务器
  • 调试 Jupyter 笔记本
  • 导出 Jupyter 笔记本

要使用 Jupyter 笔记本,必须在 VS Code 中激活 Anaconda 环境,或安装了 Jupyter 包的其他 Python 环境。要选择环境,请使用命令面板中的 Python: Select Interpreter 命令(⇧⌘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 Cell(运行单元格)和 Debug Cell(调试单元格)CodeLens 修饰符。第一个单元格还包含 Run Below(运行下方单元格),所有后续单元格都包含 Run Above(运行上方单元格)。

Jupyter adornments for code cells in the VS Code editor

注意:默认情况下,Debug Cell 仅单步执行用户代码。如果你想进入非用户代码,则需要在 Jupyter 扩展设置中取消勾选 Debug Just My Code⌘, (Windows, Linux Ctrl+,))。

Run Cell 仅应用于单个代码单元格。出现在第一个单元格上的 Run Below 会运行文件中的所有代码。Run Above 应用于除带有该修饰符的单元格之外的所有上方代码单元格。例如,你可以使用 Run Above 在运行特定单元格之前初始化运行时环境的状态。

选择命令会启动 Jupyter(如有必要,可能需要一分钟),然后在 Python Interactive(Python 交互)窗口中运行相应的单元格。

Code cells running in a Python Interactive window

你还可以使用 (Ctrl+Enter) 或 Python: Run Selection/Line in Python Terminal 命令 (Shift+Enter) 来运行代码单元格。使用此命令后,Python 扩展会自动将光标移动到下一个单元格。如果你位于文件中的最后一个单元格,扩展会自动插入另一个 # %% 分隔符以创建新单元格,模拟 Jupyter 笔记本的行为。

你还可以点击行号左侧的边距来设置断点。然后,你可以使用 Debug Cell 启动该代码单元格的调试会话。调试器会在断点处停止执行,并允许你逐行单步执行代码和检查变量(详情请参阅调试)。

其他命令和键盘快捷键

下表列出了使用代码单元格时支持的其他命令和键盘快捷键。

命令 键盘快捷键
Python: Go to Next Cell Ctrl+Alt+]
Python: Go to Previous Cell Ctrl+Alt+[
Python: Extend Selection by Cell Above Ctrl+Shift+Alt+[
Python: Extend Selection by Cell Below Ctrl+Shift+Alt+]
Python: Move Selected Cells Up Ctrl+; U
Python: Move Selected Cells Down Ctrl+; D
Python: Insert Cell Above Ctrl+; A
Python: Insert Cell Below Ctrl+; B
Python: Insert Cell Below Position Ctrl+; S
Python: Delete Selected Cells Ctrl+; X
Python: Change Cell to Code Ctrl+; C
Python: Change Cell to Markdown Ctrl+; M

使用 Python 交互窗口

上一节中提到的 Python Interactive 窗口可用作带有任意代码(有或无代码单元格)的独立控制台。要将该窗口用作控制台,请通过命令面板使用 Jupyter: Create Interactive Window 命令打开它。然后你可以输入代码,使用 Enter 换行,使用 Shift+Enter 运行代码。

要将该窗口与特定文件结合使用,请从命令面板运行 Jupyter: Run Current File in Python Interactive Window 命令。

IntelliSense

Python 交互窗口具有完整的 IntelliSense 功能——代码补全、成员列表、方法快速信息和参数提示。在 Python 交互窗口中键入代码可以像在代码编辑器中一样高效。

IntelliSense in the Python Interactive window

绘图查看器

绘图查看器使你能够更深入地处理绘图。在查看器中,你可以平移、缩放和导航当前会话中的绘图。你还可以将绘图导出为 PDF、SVG 和 PNG 格式。

在 Python 交互窗口中,双击任何绘图即可在查看器中打开它,或选择绘图左上角的展开按钮。

Plot Viewer with the Python Interactive window

注意:Python 交互窗口支持渲染使用 matplotlibAltair 创建的绘图。

变量资源管理器和数据查看器

在 Python 交互窗口内,可以查看、检查和过滤当前 Jupyter 会话中的变量。在运行代码和单元格后,选择交互窗口工具栏中的 Variables(变量)按钮打开变量资源管理器,你将看到当前变量的列表,该列表会随着变量在代码中的使用而自动更新。

Variables Explorer

如需关于变量的更多信息,你还可以双击某一行或使用 Show variable in data viewer(在数据查看器中显示变量)按钮,在数据查看器中查看变量的详细视图。打开后,你可以通过搜索行来过滤值。

Data Viewer

连接到远程 Jupyter 服务器

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

连接到远程 Jupyter 服务器

  1. 从命令面板运行 Jupyter: Specify local or remote Jupyter server for connections 命令(⇧⌘P (Windows, Linux Ctrl+Shift+P))。

  2. 选择你希望连接到 Jupyter 服务器的方式。提示提供 Jupyter 服务器 URI

  3. 如果远程工作,请在系统提示时提供带有 ?token= URL 参数的服务器 URI(主机名)及身份验证令牌。(如果你在 VS Code 终端中启动启用了身份验证令牌的服务器,通常会在终端输出中显示带有令牌的 URL,你可以从那里复制它。)或者,在提供 URI 后,你也可以指定用户名和密码。

    Prompt to supply a Jupyter server URI

  4. Python 交互窗口通过显示 URI(在下图中被模糊处理)来指示代码运行的位置。

    The Python Interactive window showing that code is running on a remote Jupyter server

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

将 Jupyter 笔记本转换为 Python 代码文件

当你激活了安装有 Jupyter 的环境后,可以在 VS Code 中打开 Jupyter 笔记本文件 (.ipynb) 并将其转换为 Python 代码。转换文件后,你可以像运行任何其他 Python 文件一样运行该代码,并使用 VS Code 调试器。在 VS Code 中打开和调试笔记本是查找和解决代码错误的一种便捷方法,这在 Jupyter 笔记本中直接进行会比较困难。

当你打开笔记本文件时,Visual Studio Code 将自动在笔记本编辑器中将其打开。使用工具栏上的转换图标将笔记本 (.ipynb) 文件转换为 Python 文件 (.py)。

Icon to convert a Jupyter notebook file

选择转换图标,然后选择“Python Script”,等待几秒钟,VS Code 会在一个无标题文件中打开转换后的笔记本。笔记本的单元格在 Python 文件中以 # %% 注释分隔;Markdown 单元格会全部转换为以 # %% [markdown] 开头的注释,并在交互窗口中与代码和输出(如图形)一起呈现为 HTML。

Jupyter notebook running in VS Code and the Python Interactive window

注意:首次在 Python 文件中运行代码单元格时,Python 扩展会启动一个 Jupyter 服务器。服务器启动并出现带有代码结果的 Python Interactive 窗口可能需要一些时间。

调试 Jupyter 笔记本

Visual Studio Code 调试器允许你单步执行代码、设置断点、检查状态和分析问题。使用调试器是查找和纠正笔记本代码中问题的有效方法。

  1. 在 VS Code 中,激活已安装 Jupyter 的 Python 环境(如本文开头所述)。

  2. 按照上一节所述将笔记本的 .ipynb 文件导入 VS Code。(如果你使用的是基于云的 Jupyter 环境,例如 Azure Notebooks,请先下载文件。)

  3. 要启动调试器,请使用以下选项之一:

    • 对于整个笔记本,打开命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))并运行 Jupyter: Debug Current File in Python Interactive Window 命令。
    • 对于单个单元格,请使用出现在单元格上方的 Debug Cell 修饰符。调试器会专门针对该单元格中的代码启动。默认情况下,Debug Cell 仅单步执行用户代码。如果你想进入非用户代码,则需要在 Jupyter 扩展设置中取消勾选 Debug Just My Code⌘, (Windows, Linux Ctrl+,))。
  4. 要熟悉 VS Code 的常规调试功能(如检查变量、设置断点和其他活动),请查看 VS Code 调试

  5. 当你发现问题时,请停止调试器、更正代码、保存文件,然后再次启动调试器。

  6. 当你确信所有代码都正确无误后,请保存文件,然后按照下一节所述导出笔记本。之后,你可以将该笔记本上传到你的常规 Jupyter 环境中。

导出 Jupyter 笔记本

除了打开 Jupyter 笔记本,你还可以使用命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中的以下命令之一,将 VS Code 中的 Python 文件内容导出为 Jupyter 笔记本(扩展名为 .ipynb)。

  • Jupyter: Export Current Python File as Jupyter Notebook:使用 # %%# %% [markdown] 分隔符指定相应的单元格类型,从当前文件内容创建一个 Jupyter 笔记本。
  • Jupyter: Export Current Python File and Output as Jupyter Notebook:从当前文件内容创建一个 Jupyter 笔记本,并包含代码单元格的输出。
  • Jupyter: Export Interactive Window as Jupyter Notebook:从 Python 交互窗口的内容创建一个 Jupyter 笔记本。

导出内容后,VS Code 会显示一个提示,通过它你可以在浏览器中打开该笔记本。

© . This site is unofficial and not affiliated with Microsoft.