Python虚拟环境怎么创建和使用?

文章导读
Previous Quiz Next Python 虚拟环境 Python 虚拟环境在项目目录中创建一个虚拟的 Python 安装。用户可以为每个项目安装和管理 Python 包。这允许用户安装包并修改他们的 Python 环境,而不必担心破坏其他环境中安装的包。
📋 目录
  1. Python 虚拟环境
  2. Python 中的虚拟环境是什么?
  3. 使用 venv 在 Python 中创建虚拟环境
  4. 激活虚拟环境
  5. 检查 Python 是否在虚拟环境中运行?
  6. 停用虚拟环境
A A

Python - 虚拟环境



Previous
Quiz
Next

Python 虚拟环境

Python 虚拟环境在项目目录中创建一个虚拟的 Python 安装。用户可以为每个项目安装和管理 Python 包。这允许用户安装包并修改他们的 Python 环境,而不必担心破坏其他环境中安装的包。

Python 中的虚拟环境是什么?

Python 虚拟环境是:

  • 被视为可丢弃的。
  • 用于包含特定项目的 Python interpreter、软件库和二进制文件。
  • 包含在一个目录中,通常在项目目录中命名为 venv 或 .venv。
  • 不被视为可移动或可复制的。

当你在计算机上安装 Python 软件时,它可以在文件系统中的任何位置使用。这是一种系统范围的安装。

在用 Python 开发应用程序时,可能需要使用 pip 工具安装一个或多个库(例如,pip3 install somelib)。此外,一个应用程序(假设为 App1)可能需要特定版本的库——比如 somelib 1.0。同时,另一个 Python 应用程序(例如 App2)可能需要同一库的较新版本,比如 somelib 2.0。因此,安装新版本可能会因为同一库的两个不同版本之间的冲突而损害 App1 的功能。

通过在同一台机器上提供两个隔离的 Python 环境,可以避免这种冲突。这些被称为虚拟环境。虚拟环境是一个独立的目录结构,包含隔离的安装,具有 Python interpreter、标准库和其他模块的本地副本。

下图展示了使用虚拟环境的用途和优势。使用全局 Python 安装,可以创建多个虚拟环境,每个环境具有同一库的不同版本,从而避免冲突。

python virtual environment

使用 venv 在 Python 中创建虚拟环境

此功能由标准 Python 分发中的 venv 模块支持。使用以下命令创建新的虚拟环境。

C:\Users\Acer>md\pythonapp
C:\Users\Acer>cd\pythonapp
C:\pythonapp>python -m venv myvenv

这里,myvenv 是将创建新 Python 虚拟环境的文件夹,显示以下目录结构——

Directory of C:\pythonapp\myvenv
22-02-2023 09:53 <DIR> .
22-02-2023 09:53 <DIR> ..
22-02-2023 09:53 <DIR> Include
22-02-2023 09:53 <DIR> Lib
22-02-2023 09:53 77 pyvenv.cfg
22-02-2023 09:53 <DIR> Scripts

用于激活和停用虚拟环境的工具以及 Python interpreter 的本地副本将放置在 Scripts 文件夹中。

Directory of C:\pythonapp\myvenv\scripts
22-02-2023 09:53 <DIR> .
22-02-2023 09:53 <DIR> ..
22-02-2023 09:53 2,063 activate
22-02-2023 09:53 992 activate.bat
22-02-2023 09:53 19,611 Activate.ps1
22-02-2023 09:53 393 deactivate.bat
22-02-2023 09:53 106,349 pip.exe
22-02-2023 09:53 106,349 pip3.10.exe
22-02-2023 09:53 106,349 pip3.exe
22-02-2023 09:53 242,408 python.exe
22-02-2023 09:53 232,688 pythonw.exe

激活虚拟环境

要启用这个新的虚拟环境,请执行 Scripts 文件夹中的 activate.bat

C:\pythonapp>myvenv\scripts\activate
(myvenv) C:\pythonapp>

注意括号中虚拟环境的名称。Scripts 文件夹包含 Python interpreter 的本地副本。你可以在这个虚拟环境中启动 Python 会话。

检查 Python 是否在虚拟环境中运行?

要确认当前 Python 会话是否在 virtual environment 中,请检查 sys.path

(myvenv) C:\pythonapp>python
Python 3.10.1 (tags/v3.10.1:2cd268a, Dec 6 2021, 19:10:37) [MSC v.1929
64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'C:\\Python310\\python310.zip', 'C:\\Python310\\DLLs',
'C:\\Python310\\lib', 'C:\\Python310', 'C:\\pythonapp\\myvenv',
'C:\\pythonapp\\myvenv\\lib\\site-packages']
>>>

此 virtual environment 的 scripts 文件夹还包含 pip 工具。如果您从 PyPI 安装一个 package,该 package 将仅在当前 virtual environment 中生效。

停用虚拟环境

要停用此 environment,请运行 deactivate.bat