Python 项目中的所有代码均在特定环境的上下文中运行。 这些环境可以是全局 Python 环境、Anaconda 环境、虚拟环境或 Conda 环境。 Visual Studio 使用 Python 环境进行调试、导入和成员完成以及语法检查。 环境用于需要特定于 Python 版本和一组已安装包的语言服务的任何任务。
在 Visual Studio 中,可以为项目创建多个环境,并根据具体的开发需求在它们之间切换。 所有新的 Python 项目最初都配置为使用默认全局环境。
可以在“解决方案资源管理器”中的“Python 环境”节点下查看项目的环境:
Visual Studio。 若要安装该产品,请按照
安装 Visual Studio
中的步骤操作。
只能在现有环境之间切换。 如果没有默认全局环境以外的环境,请参阅以下有关使用
虚拟环境
的部分。 有关详细信息,请参阅
在 Visual Studio 中创建和管理 Python 环境
。
切换当前项目环境
在 Visual Studio 中,可以在“解决方案资源管理器”或从工具栏中使用“添加环境”功能更改 Python 项目的活动(当前)环境环境。
启动“添加环境”过程:
在“解决方案资源管理器”中,右键单击项目的“Python 环境”节点并选择“添加环境”。
或者,在 Python 工具栏上,从“环境”下拉菜单中选择“添加环境”。
使用虚拟环境
虚拟环境是特定 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 中创建新的虚拟环境:
启动“添加环境”过程:
在“解决方案资源管理器”中,右键单击项目的“Python 环境”节点并选择“添加环境”。
或者,在 Python 工具栏上,从“环境”下拉菜单中选择“添加环境”。
在“添加环境”对话框中,选择“虚拟环境”选项卡:
配置必填字段:
设置为新项目的默认环境
自动设置和激活 Visual Studio 中创建的任何新项目中的环境。
此设置也可以通过“Python 环境”窗口中的“将此作为新项目的默认环境”选项获得。 使用此选项时,将虚拟环境置于特定项目之外的位置中。
在“Python 环境”窗口中查看
指定是否在创建新环境后显示“Python 环境”窗口。
使此环境全局可用
指定虚拟环境是否应同时充当全局环境。 使用此选项时,将虚拟环境置于特定项目之外的位置中。
Visual Studio 会在配置环境和下载任何必要的包时显示一个进度栏。
该过程完成后,Visual Studio 会激活新的虚拟环境,并将其添加到“解决方案资源管理器”中的“Python 环境”节点。
该环境在所含项目的“Python 环境”窗口中也可用。
按照以下步骤为项目激活现有环境:
在“解决方案资源管理器”中,展开项目的“Python 环境”节点,并找到要使用的环境。
右键单击该环境,然后选择
“激活环境”。
如果 Visual Studio 在该环境中检测到 requirements.txt 文件,它会询问是否安装这些包。
Visual Studio 激活该环境后,活动环境的名称以粗体显示在“解决方案资源管理器”中:
在 Visual Studio 中,从
Python 包索引 (PyPI)
下载大多数环境的包及依赖项,还可以在其中搜索可用的包。 Visual Studio 的状态栏和输出窗口显示有关安装的信息。
若要卸载(移除)包,请在列表中找到该包,然后选择右侧的
x
图标。
若要查找某个包或其他包的更新版本,请输入搜索字词(通常是包名称):
Visual Studio 会显示匹配的包。 在此示例中,搜索与字词
blinker
匹配的包。
Visual Studio 会将匹配结果的列表显示为活动命令链接。
第一个命令会将包刷新到最新版本和当前依赖项。 该命令类似于
Run command: pip install <package-name>
。 如果在搜索字词后选择
Enter
,Visual Studio 会自动运行第一个命令。
其他链接用于安装特定包、版本或依赖项的命令,例如
Install blinker-async (0.0.3)
。 若要运行其中一个命令,请选择该链接。
请记住,包的显示条目在最新版本或可用性方面可能不准确。 为包显示的安装和卸载信息可能不可靠或不可用。
Visual Studio 使用 pip 程序包管理器(如果可用),并且需要时会下载并安装它。 Visual Studio 还可以使用 easy_install 程序包管理器。 也会显示使用
pip
或
easy_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
命令。
在 Visual Studio 中管理 Python 环境
对依赖项使用 requirements.txt
“Python 环境”窗口参考