Python 环境是运行 Python 代码并包括全局、虚拟和 conda 环境的上下文。 环境由解释器、库(通常是 Python 标准库)和一组已安装的包组成。 这些组件共同确定有效的语言构造和语法、可以访问的作系统功能以及可以使用的包。
在 Windows 上的 Visual Studio 中,使用本文中所述的 Python 环境 窗口来管理环境,并选择一个作为新项目的默认值。
可以在以下文章中了解环境的其他方面:
对于任何给定的项目,可以选择 特定环境 ,而不是使用默认值。
有关为 Python 项目创建和使用虚拟环境的详细信息,请参阅 “使用虚拟环境”。
如果要在环境中安装包,请参阅 “包”选项卡引用。
若要安装另一个 Python 解释器,请参阅 “安装 Python 解释器”。 通常,如果下载并运行主线 Python 分发版的安装程序,Visual Studio 会检测到新安装和环境显示在 Python 环境 窗口中,并且可以为项目选择。
注释
可以通过选择“文件>打开>文件夹”来管理作为文件夹打开的 Python 代码的环境。 Python 工具栏允许在所有检测到的环境之间切换,并添加新环境。 环境信息存储在工作区 .vs 文件夹中 PythonSettings.json 文件中。
先决条件
- 已安装的 Python 工作负载
如果你不熟悉 Visual Studio 中的 Python,请参阅以下有关常规背景的文章:
“Python 环境”窗口
Visual Studio 了解的环境显示在 “Python 环境” 窗口中。 若要打开窗口,请使用以下方法之一:
- 选择“ 查看>其他 Windows>Python 环境”。
- 右键单击 解决方案资源管理器 中项目的 Python 环境 节点,然后选择 查看所有 Python 环境。
Visual Studio 中的 “Python 环境” 窗口与 解决方案资源管理器 一起显示:
Visual Studio 使用注册表(以下 PEP 514)以及 虚拟环境和conda 环境查找已安装的全局环境。 如果未在列表中看到预期环境,请参阅 “手动标识现有环境”。
在列表中选择环境时,Visual Studio 会在 Python 环境窗口的“概述”选项卡上显示该环境的各种属性和命令,例如解释器位置。 “概述”选项卡底部的命令分别打开命令提示符,并运行解释器。 有关详细信息,请参阅 “Python 环境”窗口选项卡参考 - 概述。
使用环境列表下的下拉列表切换到不同的选项卡,例如 包 和 IntelliSense。 Python 环境窗口选项卡参考中还介绍了这些选项卡。
选择环境不会更改其与任何项目的关系。 默认环境在列表中以粗体显示,是 Visual Studio 用于任何新项目的环境。 若要对新项目使用不同的环境,请使用“ 将此环境设为新项目”命令的默认环境 。 在项目的上下文中,始终可以选择特定环境。 有关详细信息,请参阅 为项目选择环境。
在每个列出的环境右侧,是一个控件,用于打开该环境的 交互式 窗口。
注释
在 Visual Studio 2017 15.5 及更早版本中,将显示另一个控件刷新该环境的 IntelliSense 数据库。 有关数据库的详细信息,请参阅 “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 文件中),则安装包需要管理员权限。
全局环境可用于计算机上的所有项目。 在 Visual Studio 中,选择一个全局环境作为默认环境,用于所有项目,除非你专门为项目选择其他环境。 有关详细信息,请参阅 为项目选择环境。
虚拟环境
在全局环境中工作是一种简单的入门方法。 随着时间的推移,环境可能会变得混乱,为不同的项目安装许多不同的包。 混乱可能导致难以针对具有已知版本的特定包彻底测试应用程序。 但这种类型的环境是需要在生成服务器或 Web 服务器上设置的环境。 当两个项目需要不兼容的包或同一包的不同版本时,也可能发生冲突。
出于这些原因,开发人员通常会为项目创建 虚拟环境 。 虚拟环境是项目中包含特定解释器副本的子文件夹。 如果激活虚拟环境,则安装的任何包仅安装在该环境的子文件夹中。 在虚拟环境中运行 Python 程序时,可以确信程序仅针对这些特定包运行。
Visual Studio 直接支持为项目创建虚拟环境。 如果打开包含 requirements.txt 文件的项目,Visual Studio 会提示你自动创建虚拟环境并安装这些依赖项。 从包含 requirements.txt 文件的模板创建项目时,会看到相同的行为。
随时可以在打开的项目内创建新的虚拟环境。 在 解决方案资源管理器中,展开项目节点,右键单击 Python 环境,然后选择 “添加环境”。 在 “添加环境”中,选择 “虚拟环境”。 有关详细信息,请参阅 创建虚拟环境。
Visual Studio 还提供一个命令,用于从虚拟环境生成 requirements.txt 文件,从而轻松地在其他计算机上重新创建环境。 有关详细信息,请参阅 “使用虚拟环境”。
Conda 环境
可以使用该工具或 Visual Studio 2017 版本 15.7 及更高版本中的集成 conda 管理来创建 conda 环境 conda
。 conda 环境需要 Anaconda 或 Miniconda。 可通过 Visual Studio 安装程序使用这些平台。 有关详细信息,请参阅 在 Visual Studio中安装 Python 支持。
在 Python 环境 窗口或 Python 工具栏中,选择 “添加环境 ”以打开 “添加环境 ”对话框。
在 “添加环境 ”对话框中,选择 “Conda 环境 ”选项卡:
配置以下字段:
领域 DESCRIPTION 项目 标识要在其中创建环境的项目。 名称 提供 conda 环境的名称。 从 添加包 指定如何将包添加到 conda 环境。
- 环境文件:如果有 描述依赖项的environment.yml 文件,请选择此选项。 输入文件的名称或浏览文件位置并选择该文件。
- 一个或多个 Anaconda 包名称:如果要列出一个或多个 Python 包或 Python 版本,请选择此选项。
包列表指示 conda 创建 Python 环境。 若要安装最新版本的 Python,请使用python
命令。 若要安装特定版本,请使用命令python=,major>.<minor>
,如中所示python=3.7
。 还可以使用包按钮从一系列菜单中选择 Python 版本和常见包。设置为当前环境 在创建环境后激活所选项目中的新环境。 设置为新项目的默认环境 在 Visual Studio 中创建的任何新项目中自动设置和激活 conda 环境。 此选项与在 Python 环境窗口中为新项目使用此默认环境相同。 在 Python 环境窗口中查看 指定在创建环境后是否显示 Python 环境 窗口。 重要
创建 conda 环境时,请务必指定至少一个 Python 版本或 Python 包,以确保环境包含 Python 运行时。 可以使用 environments.yml 文件或包列表。 如果未提供此规范,Visual Studio 将忽略环境。 环境不会显示在 Python 环境 窗口中的任意位置,它未设置为项目的当前环境,并且不能作为全局环境使用。
如果碰巧在没有 Python 版本的情况下创建 conda 环境,请使用
conda info
命令查看 conda 环境文件夹的位置。 然后,可以从该位置手动删除环境的子文件夹。选择 创建。
可以在 “输出 ”窗口中监视 conda 环境的创建。 创建完成后,输出会显示一些命令行接口(CLI)指令,例如
activate env
:在 Visual Studio 中,可以像激活任何其他环境一样为项目激活 conda 环境。 有关详细信息,请参阅 为项目选择环境。
若要在环境中安装更多包,请使用“Python 环境”窗口中的“包”选项卡。
注释
若要获得 conda 环境的最佳结果,请使用 conda 4.4.8 或更高版本。 请记住,conda 版本不同于 Anaconda 版本。 可以通过 Visual Studio 安装程序安装合适的 Miniconda 版本(Visual Studio 2019 和 Visual Studio 2022)和 Anaconda(Visual Studio 2017)。
若要查看 conda 版本(在其中存储 conda 环境和其他信息),请在 Anaconda 命令提示符处运行 conda info
命令(其中 Anaconda 位于路径中的命令提示符):
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 环境,如 手动标识现有环境中所述使用 conda 环境。
Visual Studio 2017 版本 15.7 及更高版本会自动检测 conda 环境,并在“ Python 环境” 窗口中显示它们,如下一部分所述。
手动标识现有环境
使用以下步骤标识安装在非标准位置的环境。
在 Python 环境 窗口或 Python 工具栏中,选择 “添加环境 ”以打开 “添加环境 ”对话框。
在 “添加环境 ”对话框中的“ 现有环境 ”选项卡上,将 “环境 ”字段设置为 <“自定义>”
选择“<自定义>”值后,会将更多字段添加到对话框中。
将 前缀路径 字段设置为解释器的路径。 可以通过浏览(...)将字段设置为路径位置。
选择路径后,将填充其余字段。 查看值并根据需要修改。 准备就绪后,选择“添加”。
还可以随时在 Python 环境 窗口中查看和修改环境的详细信息。
在 “Python 环境” 窗口中,选择环境,然后选择“ 配置 ”选项卡。
进行更改后,选择 “应用” 命令。
还可以使用 “删除” 命令删除环境。 有关详细信息,请参阅 “配置”选项卡。此命令不适用于自动检测的环境。
修复或删除无效的环境
如果 Visual Studio 找到环境的注册表项,但解释器的路径无效,则 Python 环境 窗口以删除线字体格式显示环境名称,如下图所示:
若要更正要保留的环境,请先尝试使用环境安装程序的 修复 过程。 大多数安装程序都包含修复选项。
修改注册表以更正环境
如果 Python 环境没有修复选项,或者想要删除无效的环境,则可以使用以下步骤直接修改注册表。 Visual Studio 在对注册表进行更改时自动更新 Python 环境 窗口。
运行 regedit.exe 可执行文件以打开注册表编辑器。
浏览到与配置对应的环境文件夹:
Python 版本 文件夹 64 位版本 HKEY_LOCAL_MACHINE\SOFTWARE\Python 或 HKEY_CURRENT_USER\Software\Python 32 位版本 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Python IronPython IronPython 扩展环境的分发和版本节点结构:
分销 Node CPython PythonCore><版本节点> Anaconda ContinuumAnalytics><版本节点> IronPython <版本节点> 检查 InstallPath 节点下的值:
- 如果计算机上仍然存在环境,请将 ExecutablePath 条目的值更改为正确的位置。 此外,根据需要更正 (Default) 和 WindowedExecutablePath 条目的值。
- 如果计算机上不再存在环境,并且想要从 Python 环境 窗口中将其删除,请删除 InstallPath 节点的版本号父节点。 可以在上图中看到此节点的示例。 在此示例中,此节点为 3.6。
谨慎
HKEY_CURRENT_USER\SOFTWARE\Python 键中的设置无效,将覆盖 HKEY_LOCAL_MACHINE\SOFTWARE\Python 键中的设置。
删除或删除 Python 环境
若要删除 Python 项目,请浏览到 解决方案资源管理器中的 Python 环境。 右键单击要删除的 Python 环境,然后选择“ 删除”。
如果要保留 Python 环境,但要将其从项目中删除,请选择“ 删除”。 如果要永久删除环境,请选择“ 删除”。