在 Visual Studio 中为项目选择 Python 环境

Python 项目中的所有代码均在特定环境的上下文中运行。 这些环境可以是全局 Python 环境、Anaconda 环境、虚拟环境或 Conda 环境。 Visual Studio 使用 Python 环境进行调试、导入和成员完成以及语法检查。 环境用于需要特定于 Python 版本和一组已安装包的语言服务的任何任务。

在 Visual Studio 中,可以为项目创建多个环境,并根据具体的开发需求在它们之间切换。 所有新的 Python 项目最初都配置为使用默认全局环境。 可以在“解决方案资源管理器”中的“Python 环境”节点下查看项目的环境:

Screenshot that shows the global default Python environment for a project in Solution Explorer in Visual Studio.

先决条件

切换当前项目环境

在 Visual Studio 中,可以在“解决方案资源管理器”或从工具栏中使用“添加环境”功能更改 Python 项目的活动(当前)环境环境。

  1. 启动“添加环境”过程:

    • 在“解决方案资源管理器”中,右键单击项目的“Python 环境”节点并选择“添加环境”。
    • 或者,在 Python 工具栏上,从“环境”下拉菜单中选择“添加环境”。

    Screenshot that shows the two options to access the Add Environments feature in Visual Studio.

  2. 在“添加环境”对话框中,选择“现有环境”选项卡。展开“环境”下拉列表,选择所需环境,然后选择“添加”。

    Screenshot that shows how to select a project environment in the Add Environments dialog in Visual Studio.

注意

如果未列出要使用的环境,你可能需要手动标识现有环境

使用虚拟环境

虚拟环境是特定 Python 解释器和一组特定库的独特组合,它与其他全局环境以及 conda 环境不同。 虚拟环境特定于项目,但保留在项目子文件夹中。 该文件夹包含环境中已安装的库,还有一个 pyvenv.cfg 文件用于指定到文件系统中的环境基础解释器的路径。 (虚拟环境中没有解释器副本,只有解释器链接。)

使用虚拟环境的一项优势是,随着项目的开发,虚拟环境始终反映出项目的确切依赖项。 此行为不同于共享全局环境,无论是否在项目中使用它们,该环境都包含任意数量的库。 从虚拟环境中,你可以轻松创建 requirements.txt 文件,此文件用于在其他开发或生产计算机上重新安装包依赖项。 有关详细信息,请参阅使用 requirements.txt 管理所需的包

在 Visual Studio 中打开包含 requirements.txt 文件的项目时,Visual Studio 自动显示用于重新创建虚拟环境的选项。 在未安装 Visual Studio 的计算机上,你可以使用 pip install -r requirements.txt 命令还原所需的包。

由于虚拟环境包含到基础 Python 解释器的硬编码路径,且你可使用 requirements.txt 文件重新创建环境,因此通常省略来自源代码管理的环境子文件夹。 将虚拟环境添加到项目后,它会立即显示在“Python 环境”窗口中。 随后,即可像激活其他任意环境一样激活它,以及管理它的包。

创建虚拟环境

可以按以下方式直接在 Visual Studio 中创建新的虚拟环境:

  1. 启动“添加环境”过程:

    • 在“解决方案资源管理器”中,右键单击项目的“Python 环境”节点并选择“添加环境”。
    • 或者,在 Python 工具栏上,从“环境”下拉菜单中选择“添加环境”。
  2. 在“添加环境”对话框中,选择“虚拟环境”选项卡:

    Screenshot of the Virtual environment tab of the Add Environment dialog box in Visual Studio.

  3. 配置必填字段:

    必填字段 说明
    Project 标识要在其中创建环境的项目。
    Name 提供新虚拟环境的名称。
    基础解释器 指定虚拟环境的基本语言解释器。
    位置 系统为虚拟环境分配默认位置。 若要更改位置,请选择“更改虚拟环境位置”链接,浏览到该位置,然后选择“选择文件夹”。
  4. 配置所需的所有可选字段:

    可选字段 说明
    从文件安装包 指定要将包添加到虚拟环境的 requirements.txt 文件的路径。 输入此位置和该文件的名称或通过浏览 (...) 找到此位置并选择该文件。
    设置为当前环境 创建环境后,在所选项目中激活新环境。
    设置为新项目的默认环境 自动设置和激活 Visual Studio 中创建的任何新项目中的环境。 此设置也可以通过“Python 环境”窗口中的“将此作为新项目的默认环境”选项获得。 使用此选项时,将虚拟环境置于特定项目之外的位置中。
    在“Python 环境”窗口中查看 指定是否在创建新环境后显示“Python 环境”窗口。
    使此环境全局可用 指定虚拟环境是否应同时充当全局环境。 使用此选项时,将虚拟环境置于特定项目之外的位置中。
  5. 选择“创建”以完成虚拟环境。

Visual Studio 会在配置环境和下载任何必要的包时显示一个进度栏。

该过程完成后,Visual Studio 会激活新的虚拟环境,并将其添加到“解决方案资源管理器”中的“Python 环境”节点。 该环境在所含项目的“Python 环境”窗口中也可用。

激活环境

按照以下步骤为项目激活现有环境:

  1. 在“解决方案资源管理器”中,展开项目的“Python 环境”节点,并找到要使用的环境。

  2. 右键单击该环境,然后选择“激活环境”。

    Screenshot that shows how to activate a project environment in Visual Studio.

    如果 Visual Studio 在该环境中检测到 requirements.txt 文件,它会询问是否安装这些包。

    Visual Studio 激活该环境后,活动环境的名称以粗体显示在“解决方案资源管理器”中:

    Screenshot that shows how Visual Studio shows the name of the active environment in a bold font in Solution Explorer.

删除虚拟环境

按照以下步骤移除项目的现有环境:

  1. 在“解决方案资源管理器”中,右键单击虚拟环境,然后选择“删除”。

  2. Visual Studio 会询问你是否要移除或删除虚拟环境。

    • 选择“移除”,使该环境对项目不可用,但在文件系统上保留它。
    • 选择“删除”,从项目中移除环境,并从文件系统中删除它。 基础解释器不受影响。

查看和管理已安装的包

在“解决方案资源管理器”中,你可以查看和管理环境中安装的包。 当环境处于活动状态时,可以在代码中导入和使用这些包。

  • 若要快速查看环境中安装的包,请在“解决方案资源管理器”中项目的“Python 环境”节点下展开环境节点:

    Screenshot that shows Python packages for an environment in Solution Explorer in Visual Studio.

  • 若要安装新包或管理现有包,请右键单击环境节点并选择“管理 Python 包”。 也可以使用 Python 工具栏上的包按钮:

    Screenshot that shows how to access the Manage Python packages option for an environment in Solution Explorer.

    “Python 环境”窗口随即打开,并在“包 (PyPI)”选项卡上显示所选环境的已安装包:

    Screenshot that shows the current packages for the selected environment in the Python Environments window.

    在 Visual Studio 中,从 Python 包索引 (PyPI) 下载大多数环境的包及依赖项,还可以在其中搜索可用的包。 Visual Studio 的状态栏和输出窗口显示有关安装的信息。

  • 若要卸载(移除)包,请在列表中找到该包,然后选择右侧的 x 图标。

  • 若要查找某个包或其他包的更新版本,请输入搜索字词(通常是包名称):

    Visual Studio 会显示匹配的包。 在此示例中,搜索与字词 blinker 匹配的包。

    Screenshot that shows how Visual Studio shows how to search for matching packages in the Python Environments window.

    Visual Studio 会将匹配结果的列表显示为活动命令链接。

    • 第一个命令会将包刷新到最新版本和当前依赖项。 该命令类似于 Run command: pip install <package-name>。 如果在搜索字词后选择 Enter,Visual Studio 会自动运行第一个命令。

    • 其他链接用于安装特定包、版本或依赖项的命令,例如 Install blinker-async (0.0.3)。 若要运行其中一个命令,请选择该链接。

有关包安装的注意事项

在 Visual Studio 中使用包时,请记住以下注意事项:

  • 请记住,包的显示条目在最新版本或可用性方面可能不准确。 为包显示的安装和卸载信息可能不可靠或不可用。

  • Visual Studio 使用 pip 程序包管理器(如果可用),并且需要时会下载并安装它。 Visual Studio 还可以使用 easy_install 程序包管理器。 也会显示使用 pipeasy_install 命令从命令行安装的包。

  • 当包中包含用于 *.pyd 文件中本机组件的源代码时,pip 无法安装包,这种情况很常见。 如果没有安装要求的 Visual Studio 版本,pip 无法编译这些组件。 在此情况下显示的错误消息是:“错误:找不到 vcvarsall.bat”。 easy_install 命令通常可下载预编译的二进制文件,且可通过 https://python.en.uptodown.com/windows/versions 下载适合旧版 Python 的编译器。 有关详细信息,请参阅 Python 工具团队博客上的How to deal with the pain of "unable to find vcvarsallbat"(如何处理“找不到 vcvarsallbat”问题)。

  • Conda 包管理器通常将 https://repo.continuum.io/pkgs/ 用作默认通道,但也可以使用其他通道。 有关详细信息,请参阅管理通道 (docs.conda.io)。

  • Visual Studio 目前不支持使用 conda 命令将包安装到 conda 环境中。 请从命令行使用 conda 命令。