Visual Studio Code 中的 Python
在 Visual Studio Code 中使用 Python,通过 Microsoft Python 扩展,变得简单、有趣且高效。该扩展使 VS Code 成为出色的 Python 编辑器,并可在各种 Python 解释器支持的任何操作系统上运行。它利用了 VS Code 的全部功能,提供自动补全和 IntelliSense、代码检查、调试和单元测试,以及在不同 Python 环境(包括虚拟环境和 conda 环境)之间轻松切换的能力。
本文仅概述了 VS Code Python 扩展的各种功能。有关编辑、运行和调试代码的详细说明,请使用下方按钮。
安装 Python 和 Python 扩展
本教程将指导你安装 Python 并使用该扩展。你必须单独安装 Python 解释器,而不是通过扩展安装。如需快速安装,请使用 python.org 提供的 Python,并从 VS Code Marketplace 安装扩展。
注意:为了帮助你开始进行 Python 开发,可以使用包含有用的扩展、设置和 Python 代码片段的Python 配置文件模板。
安装 Python 版本后,使用 Python: Select Interpreter 命令选择它。如果 VS Code 无法自动找到你正在寻找的解释器,请参阅环境 - 手动指定解释器。
你可以通过设置配置 Python 扩展。在Python 设置参考中了解更多信息。
适用于 Linux 的 Windows 子系统:如果你使用的是 Windows,WSL 是进行 Python 开发的好方法。你可以在 Windows 上运行 Linux 发行版,并且 Python 通常已经安装。当与 WSL 扩展结合使用时,你可以在 WSL 的上下文中获得完整的 VS Code 编辑和调试支持。要了解更多信息,请访问在 WSL 中开发或尝试在 WSL 中工作教程。
运行 Python 代码
要体验 Python,请创建一个文件(使用文件资源管理器),将其命名为 hello.py
并粘贴以下代码
print("Hello World")
Python 扩展随后提供使用当前选定的解释器运行 Python 代码的快捷方式(在命令面板中选择 Python: Select Interpreter)。要运行当前活动的 Python 文件,请单击编辑器右上角的 Run Python File 播放按钮。
你还可以使用 Python: Run Selection/Line in Python Terminal 命令(Shift+Enter)运行单行或选定的代码。如果没有选择,智能发送会将光标所在行周围最小的可运行代码块发送到 Python 终端(Shift+Enter)。编辑器的上下文菜单中也提供了相同的 Run Python > Run Selection/Line in Python Terminal 命令。每次在终端/REPL 中运行选定内容或一行时,都将使用同一终端,直到该终端关闭。同一终端也用于 Run Python File in Terminal。如果该终端仍在运行 REPL,则在运行 Python 文件之前,应退出 REPL (exit()
) 或切换到其他终端。
Python 扩展会根据选定内容中的第一个非空行自动删除缩进,并根据需要将所有其他行向左移动。
该命令会根据需要打开 Python 终端;你也可以直接使用 Python: Start Terminal REPL 命令打开交互式 REPL 环境,该命令会激活一个使用当前选定解释器的终端,然后运行 Python REPL。
有关更详细的说明和运行代码的其他方法,请参阅运行代码教程。
自动补全和 IntelliSense
Python 扩展支持使用当前选定的解释器进行代码补全和 IntelliSense。IntelliSense 是许多功能的通用术语,包括跨所有文件以及内置和第三方模块的智能代码补全(上下文敏感的方法和变量建议)。
IntelliSense 在你键入时快速显示方法、类成员和文档。你也可以随时使用 ⌃Space (Windows, Linux Ctrl+Space) 触发补全。将鼠标悬停在标识符上会显示有关它们的更多信息。
使用 AI 增强补全
GitHub Copilot 是一款由 AI 驱动的代码补全工具,可帮助你更快、更智能地编写代码。你可以在 VS Code 中使用 GitHub Copilot 扩展来生成代码,或从其生成的代码中学习。
GitHub Copilot 不仅为 Python 提供建议,还为多种框架提供建议,包括 JavaScript、TypeScript、Ruby、Go、C# 和 C++。
你可以在Copilot 文档中了解更多关于如何开始使用 Copilot 的信息。
代码检查
代码检查(Linting)会分析你的 Python 代码以查找潜在错误,从而轻松导航到并更正各种问题。
Python 扩展可以使用多种不同的代码检查工具,包括 Pylint、pycodestyle、Flake8、mypy、pydocstyle、prospector 和 pylama。请参阅代码检查。
调试
告别 print
语句调试!VS Code 通过 Python 调试器扩展为 Python 提供了出色的调试支持,允许你设置断点、检查变量以及使用调试控制台深入了解程序如何逐步执行。调试多种不同类型的 Python 应用程序,包括多线程、Web 和远程应用程序。
有关 Python 调试的更具体信息,例如配置你的 launch.json
设置和实现远程调试,请参阅调试。VS Code 的通用调试信息可在调试文档中找到。
此外,Django 和 Flask 教程提供了如何在 Web 应用程序上下文中实现调试的示例,包括调试 Django 模板。
环境
Python 扩展会自动检测安装在标准位置的 Python 解释器。它还会检测工作区文件夹中的 conda 环境和虚拟环境。请参阅配置 Python 环境。
当前环境显示在 VS Code 状态栏的右侧
如果未选择解释器,状态栏也会指示
所选环境用于 IntelliSense、自动补全、代码检查、格式化以及任何其他与语言相关的功能。它也在你在终端中运行或调试 Python 时,或者当你使用 Terminal: Create New Terminal 命令创建新终端时激活。
要更改当前解释器(包括切换到 conda 或虚拟环境),请在状态栏上选择解释器名称或使用 Python: Select Interpreter 命令。
VS Code 会向你显示一个已检测到的环境列表以及你手动添加到用户设置中的任何环境(请参阅配置 Python 环境)。
Jupyter Notebook
要在 VS Code 中为 Jupyter Notebook 文件 (.ipynb
) 启用 Python 支持,你可以安装 Jupyter 扩展。Python 和 Jupyter 扩展协同工作,为你提供出色的 VS Code Notebook 体验,使你能够直接查看和修改带有 IntelliSense 支持的代码单元,以及运行和调试它们。
你还可以通过 Jupyter: Export to Python Script 命令将 Notebook 转换为 Python 代码文件并打开。Notebook 的单元格在 Python 文件中通过 #%%
注释分隔,并且 Jupyter 扩展会显示 Run Cell 或 Run Below CodeLens。选择任一 CodeLens 都会启动 Jupyter 服务器并在 Python 交互式窗口中运行单元格。
你还可以连接到远程 Jupyter 服务器来运行你的 Notebook。有关更多信息,请参阅Jupyter 支持。
测试
Python 扩展支持使用 Python 内置的 unittest 框架和 pytest 进行测试。
为了运行测试,你必须在项目设置中启用受支持的测试框架之一。每个框架都有其自己的特定设置,例如用于识别测试发现路径和模式的参数。
一旦发现测试,VS Code 会提供各种命令(在状态栏、命令面板和其他地方)来运行和调试测试。这些命令还允许你运行单个测试文件和方法。
配置
Python 扩展为其各种功能提供了广泛的设置。这些设置在其相关主题中进行了描述,例如编辑代码、代码检查、调试和测试。完整列表可在设置参考中找到。
Python 配置文件模板
配置文件允许你根据当前项目或任务快速切换扩展、设置和 UI 布局。为了帮助你开始进行 Python 开发,可以使用Python 配置文件模板,这是一个精选的配置文件,包含有用的扩展、设置和代码片段。你可以直接使用此配置文件模板,也可以将其作为起点,根据自己的工作流程进一步自定义。
您通过“**配置文件**”>“**创建配置文件...**”下拉菜单选择一个配置文件模板
选择配置文件模板后,你可以查看设置和扩展,如果你不想将某些项包含在新配置文件中,可以将其删除。基于模板创建新配置文件后,对设置、扩展或 UI 所做的更改将保留在你的配置文件中。
其他常用 Python 扩展
Microsoft Python 扩展提供了本文前面描述的所有功能。通过安装其他流行的 Python 扩展,可以为 VS Code 添加额外的 Python 语言支持。
- 打开扩展视图(⇧⌘X (Windows, Linux Ctrl+Shift+X))。
- 通过输入“python”筛选扩展列表。
上面显示的扩展是动态查询的。单击上方的扩展磁贴以阅读描述和评论,从而决定哪个扩展最适合你。在Marketplace中查看更多信息。