现已推出!了解 11 月的新功能和修复。

在 VS Code 中开始使用 Python

在本教程中,你将学习如何在 Visual Studio Code 中使用 Python 3 来创建、运行和调试 Python“掷骰子!”应用程序,使用虚拟环境,使用包等等!通过使用 Python 扩展,你可以将 VS Code 转变为一个出色的轻量级 Python 编辑器。

如果你是编程新手,请查看Visual Studio Code for Education - Python 简介课程。本课程全面介绍了 Python,其中包含在可随时进行编码的基于浏览器的开发环境中的结构化模块。

要深入了解 Python 语言,你可以在 VS Code 中探索 python.org 上列出的任何编程教程

对于以数据科学为重点的 Python 教程,请查看我们的 数据科学部分

先决条件

要成功完成本教程,你需要先设置 Python 开发环境。具体而言,本教程需要

安装 Python 解释器

除了 Python 扩展外,你还需要安装 Python 解释器。你使用的解释器取决于你的特定需求,但下面提供了一些指导。

Windows

python.org 安装 Python。使用页面上首先出现的 Download Python 按钮下载最新版本。

注意:如果你没有管理员访问权限,则在 Windows 上安装 Python 的另一种选择是使用 Microsoft Store。Microsoft Store 提供了支持的 Python 版本的安装。

有关在 Windows 上使用 Python 的更多信息,请参阅 Python.org 上的 Windows 上使用 Python

macOS

不支持 macOS 上 Python 的系统安装。相反,建议使用类似 Homebrew 的包管理系统。要在 macOS 上使用 Homebrew 安装 Python,请在终端提示符处使用 brew install python3

注意:在 macOS 上,请确保 VS Code 安装的位置包含在你的 PATH 环境变量中。有关更多信息,请参阅这些设置说明

Linux

Linux 上内置的 Python 3 安装效果很好,但是要安装其他 Python 包,你必须使用 get-pip.py 安装 pip

其他选项

  • 数据科学:如果你的 Python 主要用途是数据科学,那么你可以考虑从 Anaconda 下载。Anaconda 不仅提供 Python 解释器,还提供许多用于数据科学的有用库和工具。

  • 适用于 Linux 的 Windows 子系统:如果你在 Windows 上工作,并且想要一个 Linux 环境来使用 Python,那么适用于 Linux 的 Windows 子系统 (WSL) 是你的一个选择。如果选择此选项,你还需要安装WSL 扩展。有关在 VS Code 中使用 WSL 的更多信息,请参阅 VS Code 远程开发 或尝试在 WSL 中工作教程,该教程将引导你完成设置 WSL、安装 Python 以及创建在 WSL 中运行的 Hello World 应用程序。

注意:要验证你是否已在计算机上成功安装 Python,请运行以下命令之一(具体取决于你的操作系统)

Linux/macOS:打开终端窗口并键入以下命令

python3 --version

Windows:打开命令提示符并运行以下命令

py -3 --version

如果安装成功,输出窗口应显示你安装的 Python 版本。或者,你可以在 VS Code 集成终端中使用 py -0 命令来查看计算机上安装的 python 版本。默认解释器由星号 (*) 标识。

在工作区文件夹中启动 VS Code

通过在文件夹中启动 VS Code,该文件夹将成为你的“工作区”。

使用命令提示符或终端,创建一个名为“hello”的空文件夹,导航到该文件夹中,然后在该文件夹中打开 VS Code (code) (.),方法是输入以下命令

mkdir hello
cd hello
code .

注意:如果你使用的是 Anaconda 发行版,请确保使用 Anaconda 命令提示符。

或者,你可以通过操作系统 UI 创建文件夹,然后使用 VS Code 的 文件 > 打开文件夹 来打开项目文件夹。

创建虚拟环境

Python 开发人员中的一个最佳实践是使用特定于项目的 虚拟环境。激活该环境后,你随后安装的任何包都将与其他环境(包括全局解释器环境)隔离,从而减少了因包版本冲突而引起的许多复杂情况。你可以使用 Python:创建环境在 VS Code 中使用 Venv 或 Anaconda 创建非全局环境。

打开命令面板(⇧⌘P (Windows、Linux Ctrl+Shift+P)),开始键入 Python:创建环境命令进行搜索,然后选择该命令。

该命令会显示一个环境类型列表,Venv 或 Conda。对于本示例,请选择 Venv

Create Environment dropdown

然后,该命令会显示可用于你的项目的解释器列表。选择你在本教程开始时安装的解释器。

Virtual environment interpreter selection

选择解释器后,通知将显示环境创建的进度,并且环境文件夹 (/.venv) 将显示在你的工作区中。

Create environment status notification

通过使用 命令面板 中的 Python:选择解释器 命令,确保已选择新环境。

Select an Interpreter

注意:有关虚拟环境的更多信息,或者如果你在环境创建过程中遇到错误,请参阅环境

创建 Python 源代码文件

从文件资源管理器工具栏中,选择 hello 文件夹上的 新建文件 按钮

File Explorer New File

将该文件命名为 hello.py,VS Code 将自动在编辑器中打开该文件

File Explorer hello.py

通过使用 .py 文件扩展名,你将告诉 VS Code 将此文件解释为 Python 程序,以便它使用 Python 扩展和所选的解释器来评估内容。

注意:文件资源管理器工具栏还允许你在工作区中创建文件夹,以更好地组织你的代码。你可以使用 新建文件夹 按钮快速创建文件夹。

现在你已经在工作区中创建了一个代码文件,请在 hello.py 中输入以下源代码

msg = "Roll a dice!"
print(msg)

当你开始键入 print 时,请注意 IntelliSense 如何显示自动完成选项。

IntelliSense appearing for Python code

IntelliSense 和自动补全功能适用于标准的 Python 模块,以及你安装到所选 Python 解释器环境中的其他包。它还为对象类型上可用的方法提供补全。例如,由于 msg 变量包含一个字符串,当你输入 msg. 时,IntelliSense 会提供字符串方法。

IntelliSense appearing for a variable whose type provides methods

最后,保存文件(⌘S (Windows, Linux Ctrl+S))。此时,你就可以在 VS Code 中运行你的第一个 Python 文件了。

有关编辑、格式化和重构的完整详细信息,请参阅编辑代码。Python 扩展还完全支持代码检查

运行 Python 代码

单击编辑器右上角的运行 Python 文件播放按钮。

Using the Run Python File button

该按钮会打开一个终端面板,其中会自动激活你的 Python 解释器,然后运行 python3 hello.py (macOS/Linux) 或 python hello.py (Windows)

Program output in a Python terminal

在 VS Code 中,你还可以通过其他三种方式运行 Python 代码

  1. 在编辑器窗口中的任意位置右键单击,然后选择运行 Python > 在终端中运行 Python 文件(这将自动保存文件)

    Run Python File in Terminal command in the Python editor

  2. 选择一行或多行,然后按 Shift+Enter 或右键单击并选择运行 Python > 在 Python 终端中运行所选内容/行。或者,你可以使用 Shift+Enter 在不选择任何内容的情况下激活智能发送,Python 扩展会将光标所在位置附近最小的可运行代码块发送到终端。此命令对于仅测试文件的某一部分非常方便。

    注意:如果你希望在光标所在特定行发送代码,你可以在你的用户设置中将 python.REPL.enableREPLSmartSend : "false" 设置为关闭智能发送。

  3. 从命令面板(⇧⌘P (Windows, Linux Ctrl+Shift+P))中,选择Python: 启动终端 REPL 命令,为当前选择的 Python 解释器打开一个 REPL 终端(以 >>> 表示)。在 REPL 中,你可以一次输入并运行一行代码。

恭喜你,你刚刚在 Visual Studio Code 中运行了你的第一个 Python 代码!

配置和运行调试器

现在让我们尝试调试我们的 Python 程序。调试支持由Python 调试器扩展提供,该扩展随 Python 扩展自动安装。要确保它已正确安装,请打开扩展视图(⇧⌘X (Windows, Linux Ctrl+Shift+X))并搜索 @installed python debugger。你应该在结果中看到 Python 调试器扩展。

Python Debugger extension shown in installed extensions view in VS Code.

接下来,通过将光标放在 print 调用上并按 F9,在 hello.py 的第 2 行设置一个断点。或者,单击编辑器左侧装订线中的行号旁边。当你设置断点时,装订线中会出现一个红色圆圈。

Setting a breakpoint in hello.py

接下来,要初始化调试器,请按 F5。由于这是你第一次调试此文件,命令面板将打开一个配置菜单,允许你为打开的文件选择所需的调试配置类型。

List of Python debugger configuration options

注意:VS Code 对其所有各种配置使用 JSON 文件;launch.json 是包含调试配置的文件的标准名称。

选择Python 文件,这是使用当前选定的 Python 解释器运行编辑器中显示的当前文件的配置。

调试器将启动,然后在文件的第一个断点处停止。当前行在左边距中用黄色箭头指示。如果此时检查本地变量窗口,你可以看到 msg 变量出现在本地窗格中。

Debugging step 2 - variable defined

调试工具栏出现在顶部,其中包含以下从左到右的命令:继续 (F5)、单步跳过 (F10)、单步进入 (F11)、单步跳出 (⇧F11 (Windows, Linux Shift+F11))、重新启动 (⇧⌘F5 (Windows, Linux Ctrl+Shift+F5)) 和停止 (⇧F5 (Windows, Linux Shift+F5))。

Debugging toolbar

状态栏也会更改颜色(在许多主题中为橙色),以指示你处于调试模式。Python 调试控制台也会自动显示在右下方面板中,以显示正在运行的命令以及程序输出。

要继续运行程序,请在调试工具栏上选择继续命令 (F5)。调试器会将程序运行到结束。

提示:调试信息也可以通过将鼠标悬停在代码(例如变量)上来查看。在 msg 的情况下,将鼠标悬停在变量上将在变量上方的框中显示字符串 Roll a dice!

你也可以在调试控制台中使用变量(如果看不到它,请在 VS Code 的右下区域中选择调试控制台,或从 ... 菜单中选择它)。然后尝试在控制台底部的 > 提示符下逐个输入以下行

msg
msg.capitalize()
msg.split()

Debugging step 3 - using the debug console

再次选择工具栏上的蓝色继续按钮(或按 F5)以将程序运行完成。如果切换回Python 调试控制台,“Roll a dice!” 会出现在其中,并且在程序完成后,VS Code 会退出调试模式。

如果你重新启动调试器,调试器会再次在第一个断点处停止。

要在程序完成之前停止运行程序,请使用调试工具栏上的红色方形停止按钮 (⇧F5 (Windows, Linux Shift+F5)),或使用运行 > 停止调试菜单命令。

有关完整详细信息,请参阅调试配置,其中包含有关如何使用特定 Python 解释器进行调试的说明。

提示:使用日志点代替 print 语句:开发人员通常会在源代码中随意添加 print 语句,以便快速检查变量,而无需在调试器中逐步执行每一行代码。在 VS Code 中,你可以改为使用日志点。日志点就像一个断点,只不过它会将消息记录到控制台,而不会停止程序。有关详细信息,请参阅主 VS Code 调试文章中的日志点

安装和使用包

让我们通过使用包来构建前面的示例。

在 Python 中,包是你获取任意数量的有用代码库的方式,通常来自 PyPI,这些代码库为你的程序提供额外的功能。在此示例中,你将使用 numpy 包来生成一个随机数。

返回到资源管理器视图(左侧最上面的图标,显示文件),打开 hello.py,然后粘贴以下源代码

import numpy as np

msg = "Roll a dice!"
print(msg)

print(np.random.randint(1,9))

提示:如果你手动输入以上代码,你可能会发现在你在一行末尾按 Enter 时,自动补全功能会更改 as 关键字之后的名称。要避免这种情况,请键入一个空格,然后按 Enter

接下来,使用上一节中描述的“Python:当前文件”配置在调试器中运行该文件。

你应该会看到消息 "ModuleNotFoundError: No module named 'numpy'"。此消息指示你的解释器中没有所需的包。如果你使用的是 Anaconda 发行版或以前安装了 numpy 包,你可能不会看到此消息。

要安装 numpy 包,请停止调试器并使用命令面板运行终端:创建新终端⌃⇧` (Windows, Linux Ctrl+Shift+`))。此命令会为你选择的解释器打开一个命令提示符。

要在你的虚拟环境中安装所需的包,请根据你的操作系统输入以下命令

  1. 安装包

    # Don't use with Anaconda distributions because they include matplotlib already.
    
    # macOS
    python3 -m pip install numpy
    
    # Windows (may require elevation)
    py -m pip install numpy
    
    # Linux (Debian)
    apt-get install python3-tk
    python3 -m pip install numpy
    
  2. 现在,重新运行程序(无论是否使用调试器)以查看输出!

跨环境管理依赖项

在处理 Python 项目时,有效地管理依赖项至关重要。一个有用的提示是使用 pip freeze > requirements.txt 命令。此命令可帮助你创建 requirements.txt 文件,其中列出了你的虚拟环境中安装的所有包。然后,此文件可用于在其他位置重新创建相同的环境。

请按照以下步骤创建 requirements.txt 文件

  1. 激活你的虚拟环境(如果尚未激活)。

    source venv/bin/activate  # On macOS/Linux
    
    .\venv\Scripts\activate   # On Windows
    
  2. 生成 requirements.txt 文件。

    pip freeze > requirements.txt
    

你现在可以使用新生成的 requirements.txt 文件在另一个环境中安装依赖项。此外,你还可以随着项目的复杂性增加而继续向其添加依赖项。

pip install -r requirements.txt

通过遵循这些步骤,您可以确保项目依赖在不同环境之间保持一致,从而更容易与他人协作和部署您的项目。

恭喜您完成 Python 教程!在本教程中,您学习了如何创建 Python 项目、创建虚拟环境、运行和调试 Python 代码以及安装 Python 包。探索其他资源,了解如何在 Visual Studio Code 中充分利用 Python!

后续步骤

要学习如何使用流行的 Python Web 框架构建 Web 应用程序,请参阅以下教程

在 Visual Studio Code 中还有更多关于 Python 的内容值得探索