Visual Studio Code 中的 Python
在 Visual Studio Code 中使用 Microsoft Python 扩展处理 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,则应退出 REPL (exit()
) 或切换到不同的终端,然后再运行 Python 文件。
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 扩展可以应用多种不同的 linter,包括 Pylint、pycodestyle、Flake8、mypy、pydocstyle、prospector 和 pylama。请参阅Linting。
调试
不再需要 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 中查看更多信息。