[Python] 创建和管理虚拟环境 (venv)

您好,我是系统解决方案部的犬冢牙。

这次我们将使用 Python 的 venv 创建一个虚拟环境。

什么是 venv?

venv 是 3.3 版本中添加的一个模块,用于在基础 Python 之上创建轻量级的 Python 虚拟环境。

使用虚拟环境,您可以按项目安装 Python 包,而不是按系统范围安装。

这意味着您可以为每个项目使用不同的版本和软件包,并且可以启动其他项目而无需担心依赖关系的影响。

从 3.5 版本开始,建议使用 venv 创建虚拟环境(截至 2023 年 8 月)。

venv --- 创建虚拟环境

试着自己做一下

现在我们来试一试。

如果您使用的是 3.3 或更高版本,则此为标准功能,无需额外安装。

这次我使用的是 Windows 系统上的 Python 3.11.0。

 
python -V Python 3.11.0

创建虚拟环境

为了方便起见,创建一个名为 test_dir 的目录,并在其中创建一个虚拟环境。

在 Linux 上创建虚拟环境的命令 (python -m venv) 是相同的。

为了简化虚拟环境的管理,我们将创建一个名为 myenv1 的虚拟环境。

 
mkdir test_dir cd test_dir python -m venv myenv1

为了便于查看,部分列已被隐藏,但 venv 的内容如下所示。
由于本次我们只关注用法,因此不会深入讲解细节,但这些是配置虚拟环境的重要目录/文件,请勿随意更改。

 
ls myenv1 目录:C:\Users\ichik\test_dir\myenv1 模式 最后写入时间 名称 ---- ------------- ---- d---- 2023/08/28 13:30 Include d---- 2023/08/28 13:30 Lib d---- 2023/08/28 13:30 Scripts -a---- 2023/08/28 13:30 pyvenv.cfg

激活虚拟环境

使用以下命令激活虚拟环境:

执行后,如果提示符开头显示了环境名称,则激活成功。

.\myenv1\Scripts\Activate.ps1 (myenv1) PS C:\Users\ichik\test_dir>

*根据执行环境的不同,命令也会有所不同,请参考下表。

平台 激活虚拟环境的命令
POSIX bash/zsh 来源  /bin/activate
来源  /bin/activate.fish
csh/tcsh 来源  /bin/activate.csh
PowerShell $  /bin/Activate.ps1
视窗 cmd.exe C:\>  \Scripts\activate.bat
PowerShell PS  C:\>  \Scripts\Activate.ps1

虽然会显示环境名称,但会执行虚拟环境中的 Python 代码,而不是基础 Python 代码。

请注意,当您以标准方式创建虚拟环境时,虚拟环境的 Python 版本与基础 Python 版本相同。

 python -V Python 3.11.0 

如上所述,虚拟环境中的软件包是相互独立的,因此您可以根据自己的喜好进行安装。

禁用虚拟环境

使用以下命令停用虚拟环境:

(myenv1) PS C:\Users\ichik\test_dir> deactivate

如果不再需要虚拟环境,可以删除该目录。

例如:我想复制并重用一个虚拟环境

例如,如果您在另一台电脑上使用它,或者与他人共享它进行开发,则不会复制和重用虚拟环境本身。

创建软件包列表,并使用 git 或类似工具将其与源代码一起共享。

您可以使用以下命令输出软件包列表:

(myenv1) PS C:\Users\ichik\test_dir> python -m pip freeze > requirements.txt

接下来,在新启动的虚拟环境中运行以下命令,一次性安装所有软件包。

(myenv1) PS C:\Users\ichik\test_dir> python -m pip install -r requirements.txt

例2)我想启动一个不同版本(Windows)的虚拟环境。

您也可以安装任意版本来启动具有不同版本的虚拟环境。

首先,请检查您已安装的版本。

py --list -V:3.11 * Python 3.11 (64 位) -V:3.9 Python 3.9 (64 位)

这次我们将使用 Python 3.9 开始一个新项目。

py -3.9 -m venv pyenv39 .\pyenv39\Scripts\Activate.ps1

虚拟环境的上线版本与基础版本不同!

(pyenv39) PS C:\Users\ichik\test_dir> python -V Python 3.9.13

然后,您可以引用源代码和 requirements.txt 文件,运行 pip install 命令,以不同的版本运行该程序。

概括

  • venv 是 3.3 版本中添加的一个模块,用于在基础 Python 之上创建轻量级的 Python 虚拟环境。
  • 不同的项目可以使用不同的版本和软件包。
  • 您可以启动其他项目,而无需担心依赖关系。

感谢观看。

如果您觉得这篇文章有用,请点击【点赞】!
4
加载中...
4票,平均分:1.00/14
5,760
X Facebook Hatena书签 口袋

这篇文章的作者

关于作者

犬宿

他于 2021 年 4 月以应届毕业生的身份加入 Beyond 公司。
他有时会说一些奇怪的话,或许是因为他的工作效率不高。