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 子系统 (WSL):如果你在 Windows 上,WSL 是进行 Python 开发的好方法。你可以在 Windows 上运行 Linux 发行版,并且通常已经安装了 Python。当与 WSL 扩展结合使用时,你可以在 WSL 的上下文中运行时获得完整的 VS Code 编辑和调试支持。要了解更多信息,请访问在 WSL 中开发或尝试在 WSL 中工作教程。
运行 Python 代码
要体验 Python,请创建一个名为 hello.py
的文件(使用文件资源管理器)并粘贴以下代码
print("Hello World")
然后,Python 扩展提供了使用当前选定的解释器(在命令面板中通过 Python: Select Interpreter 选择)来运行 Python 代码的快捷方式。要运行活动的 Python 文件,请单击编辑器右上角的运行 Python 文件播放按钮。
你还可以使用 Python: Run Selection/Line in Python Terminal 命令(Shift+Enter)来运行单行或选定的代码。如果没有选择内容,智能发送 (Smart Send) 将会把光标所在行周围最小的可运行代码块发送到 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 扩展可以应用多种不同的 linter,包括 Pylint、pycodestyle、Flake8、mypy、pydocstyle、prospector 和 pylama。请参阅代码检查。
调试
告别 print
语句调试!VS Code 通过 Python Debugger 扩展为 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 Notebooks
要在 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 配置文件模板
配置文件 (Profiles) 让你能够根据当前的项目或任务快速切换你的扩展、设置和 UI 布局。为了帮助你开始 Python 开发,你可以使用 Python 配置文件模板,这是一个包含有用扩展、设置和代码片段的精选配置文件。你可以直接使用该配置文件模板,也可以将其作为起点,为自己的工作流程进行进一步定制。
您通过“**配置文件**”>“**创建配置文件...**”下拉菜单选择一个配置文件模板
选择一个配置文件模板后,你可以查看其设置和扩展,如果你不想将某些项目包含在你的新配置文件中,可以单独移除它们。基于模板创建新配置文件后,对设置、扩展或 UI 的更改将保存在你的配置文件中。
其他流行的 Python 扩展
Microsoft Python 扩展提供了本文前面描述的所有功能。通过安装其他流行的 Python 扩展,可以为 VS Code 添加额外的 Python 语言支持。
- 打开扩展视图 (⇧⌘X (Windows, Linux Ctrl+Shift+X))。
- 通过输入 'python' 来筛选扩展列表。
上面显示的扩展是动态查询的。点击上面的扩展磁贴以阅读描述和评论,决定哪个扩展最适合你。在 Marketplace 中查看更多。