在 Visual Studio 中创建和管理 Python 环境

Python 环境是运行 Python 代码的上下文,包括全局、虚拟和 Conda 环境 。 环境由解释器、库(通常是 Python 标准库)以及一组已安装的包组成。 这些组成部分共同确定有效的语言结构和语法、可访问的操作系统功能以及可使用的包。

在 Windows 上的 Visual Studio 中,可使用“Python 环境”窗口(如本文中所述)管理这些环境并选择其中一个作为新项目的默认环境 。 环境的其他方面可在以下文章中找到:

  • 对于任何给定的项目,可选择特定环境而不使用默认环境。

  • 有关为 Python 项目创建和使用虚拟环境的详细信息,请参阅使用虚拟环境

  • 如果想在环境中安装包,请参阅“包”选项卡引用

  • 若要安装另一个 Python 解释器,请参阅安装 Python 解释器。 通常,如果下载并运行传统 Python 分发版的安装程序,Visual Studio 会检测新的安装和环境是否出现在“Python 环境”窗口中并且是否可以为项目选择它们 。

注意

>>你可以通过选择“文件”“打开”“文件夹”来管理作为文件夹打开的 Python 代码环境。 使用 Python 工具栏,可以在所有检测到的环境之间切换,还可以添加新环境。 环境信息存储在 Workspace .vs 文件夹中的 PythonSettings.json 文件中。

先决条件

  • 已安装的 Python 工作负荷。

如果不熟悉 Visual Studio 中的 Python,请参阅以下文章了解一般背景信息:

“Python 环境”窗口

Visual Studio 了解的环境显示在“Python 环境” 窗口中。 要打开该窗口,请使用以下某个方法:

  • 依次选择“查看”“其他 Windows”“Python 环境”>>
  • 在解决方案资源管理器中,右键单击某项目的“Python 环境”节点,选择“查看所有 Python 环境”。

Visual Studio 2019 的解决方案资源管理器中“查看所有 Python 环境”命令的屏幕截图。

Visual Studio 2022 的解决方案资源管理器中“查看所有 Python 环境”命令的屏幕截图。

“Python 环境”窗口将出现在 Visual Studio 中的“解决方案资源管理器”旁边

Visual Studio 2019 中的“Python 环境”窗口的屏幕截图。

Visual Studio 2022 中的“Python 环境”窗口的屏幕截图。

Visual Studio 使用注册表查找已安装的全局环境(遵循 PEP 514),以及查找虚拟环境和 conda 环境(请参阅环境类型)。 如果在列表中看不到预期的环境,请参阅手动标识现有环境

在列表中选择环境时,Visual Studio 会在“Python 环境”窗口的“概述”选项卡上显示该环境的各种属性和命令,例如解释器位置。 “概述“选项卡底部的命令在解释器运行时分别打开一个命令提示符。 有关详细信息,请参阅“Python 环境”窗口选项卡引用 - 概述

使用环境列表下方的下拉列表可切换到不同的选项卡,例如“包”和“IntelliSense”。 “Python 环境”窗口选项卡引用中也介绍了这些选项卡。

选择环境不会改变其与任何项目的关系。 Visual Studio 可将列表中以粗体显示的默认环境用于任意新项目。 要在新项目中使用不同的环境,请使用“将此作为新项目的默认环境”命令 。 在项目的上下文中,可以始终选择特定环境。 有关详细信息,请参阅选择项目环境

在列出的每个环境右侧,有一个控件可为此环境打开“交互”窗口。 (在 Visual Studio 2017 15.5 及更早版本中,可能会显示另一个控件,用于刷新该环境的 IntelliSense 数据库。有关此数据库的详细信息,请参阅“Python 环境”窗口选项卡引用。)

提示

如果将“Python 环境”窗口展开到足够宽,你会看到更加完整的环境视图,从而可使操作更加便捷。

Visual Studio 2019 中“Python 环境”窗口扩展视图的屏幕截图。

提示

如果将“Python 环境”窗口展开到足够宽,你会看到更加完整的环境视图,从而可使操作更加便捷。

Visual Studio 2022 中“Python 环境”窗口扩展视图的屏幕截图。

注意

尽管 Visual Studio 遵循系统-站点-包选项,但它没有提供从 Visual Studio 中更改它的方法。

如果未出现环境该怎么办?

如果在“Python 环境”窗口中看不到任何环境,则意味着 Visual Studio 无法检测标准位置中的任何 Python 安装。 你可能安装了 Visual Studio 2017 或更高版本但清除了 Python 工作负荷的安装程序选项中的所有解释器选项。 同样,你可能安装了 Visual Studio 2015 或更早版本,但未手动安装解释器。 有关详细信息,请参阅安装 Python 解释器

如果知道计算机上有一个 Python 解释器,但 Visual Studio(任何版本)未检测到它,则使用“+ 自定义”命令来手动指定解释器位置。 有关详细信息,请参阅如何手动标识现有环境

环境类型

Visual Studio 可使用全局、虚拟和 conda 环境。

全局环境

每个 Python 安装都维护其自己的全局环境。 例如,Python 2.7、Python 3.6、Python 3.7、Anaconda 4.4.0 等。 有关详细信息,请参阅安装 Python 解释器

每个环境都包括特定的 Python 解释器、其标准库和一组预安装包。 它还包含激活环境时安装的所有其他包。 将包安装到全局环境使其适用于使用此环境的所有项目。 如果环境位于文件系统的保护区域内(例如,c:\program files 内),则安装包时需要管理员权限 。

全局环境适用于计算机上的所有项目。 在 Visual Studio 中,选择一个全局环境作为默认环境,此环境可用于所有项目,除非为项目专门选择了其他环境。 有关详细信息,请参阅选择项目环境

虚拟环境

在全局环境中工作是一种简单的入门方法。 随着时间的推移,环境会变得混乱,充满为不同项目安装的许多不同的包。 这种混乱使你很难针对一组具有已知版本的特定软件包对应用程序进行彻底测试。 但是,期望在生成服务器或 Web 服务器上设置的环境类型与这种环境相同。 当两个项目需要不兼容的包或相同包的不同版本时,也会发生冲突。

因此,开发人员通常会为项目创建虚拟环境。 虚拟环境是项目中的子文件夹,其中包含特定解释器的副本。 如果激活虚拟环境,任何安装的包仅安装在环境的子文件夹中。 在虚拟环境中运行 Python 程序时,可以确信程序仅针对这些特定包运行。

Visual Studio 为创建项目的虚拟环境提供直接支持。 如果打开包含 requirements.txt 文件的项目,Visual Studio 会自动提示你创建虚拟环境并安装这些依赖项。 从包含 requirements.txt 文件的模板创建项目时,会看到相同的行为。

在打开的项目中,可随时创建新的虚拟环境。 在“解决方案资源管理器”中,展开项目节点,右键单击“Python 环境”,然后选择“添加环境”。 在“添加环境”中,选择 “虚拟环境”。 有关详细信息,请参阅创建虚拟环境

Visual Studio 还提供基于虚拟环境生成 requirements.txt 文件的命令,简化了在其他计算机上重新创建环境的过程。 有关详细信息,请参阅使用虚拟环境

Conda 环境

你可以使用 conda 工具或通过 Visual Studio 2017 版本 15.7 及更高版本中的集成式 Conda 管理创建 Conda 环境。 Conda 环境需要 Anaconda 或 Miniconda。 可通过 Visual Studio 安装程序使用这些平台。 有关详细信息,请参阅在 Visual Studio 中安装 Python 支持

  1. 在“Python 环境”窗口中(或从 Python 工具栏上)选择“添加环境”,以打开“添加环境”对话框。

  2. 在“添加环境”对话框中,选择“Conda 环境”选项卡:

    Visual Studio 中“添加环境”对话框中的“Conda 环境”选项卡的屏幕截图。

  3. 配置以下字段:

    字段 描述
    Project 标识要在其中创建环境的项目。
    Name 提供 Conda 环境的名称。
    添加包 指定如何将包添加到 Conda 环境。
    - 环境文件:如果有描述依赖项的 environment.yml 文件,请选择此选项。 输入该文件的名称或通过浏览 (...) 找到文件位置并选择该文件。
    - 一个或多个 Anaconda 包名称:如果要列出一个或多个 Python 包或 Python 版本,请选择此选项。

    包列表可指示 conda 创建 Python 环境。 若要安装最新版本的 Python,请使用 python 命令。 若要安装特定版本,请使用 python=3.7 中的 python=,major>.<minor> 命令。 还可以使用包按钮从一系列菜单中选择 Python 版本和常见包。
    设置为当前环境 创建环境后,在所选项目中激活新环境。
    设置为新项目的默认环境 自动设置和激活 Visual Studio 中创建的任何新项目中的 conda 环境。 此选项与使用“Python 环境”窗口中的“将此作为新项目的默认环境”相同 。
    在“Python 环境”窗口中查看 指定是否在创建环境后显示“Python 环境”窗口。

    重要

    创建 Conda 环境时,请务必指定至少一个 Python 版本或 Python 包,以确保环境包含 Python 运行时。 可以使用 environments.yml 文件或包列表。 如果未提供此规范,Visual Studio 将忽略环境。 该环境不会出现在“Python 环境”窗口中的任何位置,它不会设置为项目的当前环境,也不会作为全局环境使用。

    如果你碰巧创建了一个没有 Python 版本的 Conda 环境,请使用 conda info 命令查看 Conda 环境文件夹的位置。 然后,可以从该位置手动移除环境的子文件夹。

  4. 选择创建

    可以在“输出”窗口中监视 Conda 环境的创建。 创建完成后,输出会显示一些命令行接口 (CLI) 指令,例如 activate env

    显示成功在 Visual Studio 中创建 Conda 环境的屏幕截图。

  5. 在 Visual Studio 中,可以像激活任何其他环境一样为项目激活 Conda 环境。 有关详细信息,请参阅选择项目环境

  6. 若要在环境中安装更多包,请使用“Python 环境”窗口中的“包”选项卡。

注意

为获得 Conda 环境的最佳使用结果,请使用 Conda 4.4.8 或更高版本。 请记住,Conda 版本不同于 Anaconda 版本。 可以通过 Visual Studio 安装程序安装合适版本的 Miniconda(Visual Studio 2019 和 Visual Studio 2022)和 Anaconda (Visual Studio 2017)。

若要查看 Conda 版本、Conda 环境的存储位置以及其他信息,请在 Anaconda 命令提示符(即路径中包含 Anaconda 的命令提示符)运行 conda info 命令:

conda info

conda 环境文件夹如下所示:

       envs directories : C:\Users\user\.conda\envs
                          c:\anaconda3\envs
                          C:\Users\user\AppData\Local\conda\conda\envs

由于未使用项目存储 Conda 环境,这些环境与全局环境的功能类似。 例如,将新包安装到 Conda 环境,从而使该包适用于使用此环境的所有项目。

对于 Visual Studio 2017 版本 15.6 及更早版本,可以根据手动标识现有环境中所述,通过手动指向 Conda 环境进行使用。

根据下一节所述,Visual Studio 2017 版本 15.7 及更高版本自动检测 Conda 环境,并在“Python 环境”窗口中显示这些环境 。

手动标识现有环境

使用以下步骤来标识安装在非标准位置的环境。

  1. 在“Python 环境”窗口中(或从 Python 工具栏上)选择“添加环境”,以打开“添加环境”对话框。

  2. <>在“添加环境”对话框中的“现有环境”选项卡上,将“环境”字段设置为“自定义”:

    Visual Studio 中“添加环境”对话框的“现有环境”选项卡的屏幕截图,其中显示了如何将“环境”字段设置为“自定义”。

    选择<>“自定义”值后,会将更多字段添加到对话框中。

  3. 将“前缀路径”字段设置为解释器的路径。 可以通过浏览 (...) 至路径位置来设置该字段。

    显示如何在 Visual Studio 的“添加环境”对话框中指定自定义环境的详细信息的屏幕截图。

  4. 选择路径后,系统会填充其余字段。 查看值并根据需要进行修改。 准备就绪后,选择“添加”。

也可以在“Python 环境”窗口中随时检查和修改环境的详细信息。

  1. 在“Python 环境”窗口中,选择环境,然后选择“配置”选项卡。

  2. 进行更改后,选择“应用”命令。

还可以使用“移除”命令移除环境。 有关详细信息,请参阅“配置”选项卡。此命令不适用于自动检测的环境。

修复或删除无效环境

如果 Visual Studio 找到环境的注册表项,但解释器的路径无效,则“Python 环境”窗口会显示采用删除线字体格式的环境名称,如下图中所示:

Visual Studio 中显示无效环境的“Python 环境”窗口的屏幕截图。

若要更正想保留的环境,首先请尝试使用环境安装程序的“修复”进程。 大多数安装程序都包含修复选项。

修改注册表以更正环境

如果 Python 环境没有修复选项,或者你想移除无效环境,可以使用以下步骤直接修改注册表。 更改注册表后,Visual Studio 会自动更新“Python 环境”窗口。

  1. 运行 regedit.exe 可执行文件以打开注册表编辑器。

  2. 浏览到与配置对应的环境文件夹:

    Python 版本 文件夹
    64 位版本 HKEY_LOCAL_MACHINE\SOFTWARE\PythonHKEY_CURRENT_USER\Software\Python
    32 位版本 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python
    IronPython IronPython
  3. 扩展环境的分发和版本节点结构:

    发运 节点
    CPython PythonCore><版本节点>
    Anaconda ContinuumAnalytics><版本节点>
    IronPython <版本节点>
  4. 检查 InstallPath 节点下的值 :

    注册表编辑器中典型 CPython 安装的注册表项的屏幕截图。

    • 如果计算机上仍存在该环境,请将 ExecutablePath 条目更改为正确位置。 还根据需要更正 (Default)WindowedExecutablePath 条目的值。
    • 如果计算机上不再存在该环境,而且你想将其从“Python 环境”窗口中移除,请删除 InstallPath 节点的版本号和父节点。 可以在上图中看到此节点的示例。 在本示例中,该节点为 3.6

    注意

    HKEY_CURRENT_USER\SOFTWARE\Python 项中的无效设置会替代 HKEY_LOCAL_MACHINE\SOFTWARE\Python 项中的设置。

删除或移除 Python 环境

若要移除 Python 项目,请在“解决方案资源管理器”中浏览到 Python 环境。 右键单击要移除的 Python 环境,然后选择“移除”

显示如何在 Visual Studio 中删除 Python 环境的屏幕截图。

如果要保留 Python 环境,但将其从项目中移除,请选择“移除”。 如果要永久删除环境,请选择“删除”

显示如何在 Visual Studio 中删除或移除 Python 环境的屏幕截图。