如何停用 Python venv

PythonBeginner
立即练习

介绍

Python 虚拟环境对于隔离管理项目依赖至关重要。本教程将指导你完成停用虚拟环境的过程,使你能够在项目之间切换并保持干净的开发工作流程。

理解虚拟环境

在停用之前,让我们快速回顾一下什么是虚拟环境以及它为什么重要。

虚拟环境是一个独立的目录,其中包含特定的 Python 版本及其相关的软件包。这种隔离可以防止不同项目之间可能需要相同软件包的不同版本时发生冲突。

为什么使用虚拟环境?

  • 隔离(Isolation): 将项目依赖项分开。
  • 版本管理(Version Management): 允许为不同的项目使用不同的 Python 版本。
  • 可重现性(Reproducibility): 确保不同机器上环境的一致性。

让我们创建一个虚拟环境以进行演示。打开你的终端并执行以下命令:

sudo apt update
sudo apt install -y python3.10-venv

现在,在当前目录(/home/labex/project)中创建一个虚拟环境:

python3 -m venv my_venv

此命令创建一个名为 my_venv 的目录,其中包含虚拟环境文件。

现在,激活虚拟环境:

source my_venv/bin/activate

Image showing activated virtual env

你会注意到你的终端提示符发生变化,表明虚拟环境已激活(例如,(my_venv) labex:project/ $)。

停用虚拟环境

停用虚拟环境非常简单。只需使用 deactivate 命令。

在你的终端中,输入:

deactivate

运行此命令后,你的终端提示符将恢复到其原始状态,表明虚拟环境不再处于活动状态。

验证:

要确认虚拟环境已停用,你可以检查 which python 命令。

which python
/usr/bin/python

如果虚拟环境已停用,则该路径应指向系统的 Python 安装,而不是虚拟环境中的 Python 安装。

在项目之间切换

使用虚拟环境的主要原因之一是能够轻松地在具有不同依赖项的不同项目之间切换。

让我们模拟这种情况。假设你有两个项目,project_aproject_b,每个项目都有自己的虚拟环境。

首先,让我们为 project_a 及其虚拟环境创建一个目录。

mkdir project_a
cd project_a
python3 -m venv venv_a

现在,激活 project_a 的虚拟环境:

source venv_a/bin/activate

你应该在终端提示符中看到 (venv_a)

现在,让我们为 project_b 及其虚拟环境创建一个目录。首先,停用当前环境并导航回项目根目录。

deactivate
cd ..
mkdir project_b
cd project_b
python3 -m venv venv_b

现在,激活 project_b 的虚拟环境:

source venv_b/bin/activate

你应该在终端提示符中看到 (venv_b)

通过遵循停用当前环境,然后激活所需环境的这种模式,你可以无缝地在项目之间切换,而不会产生任何依赖冲突。

清理

要清理在此实验期间创建的虚拟环境,你可以直接删除这些目录。

首先,确保你不在任何虚拟环境中。如果在你的提示符中看到虚拟环境名称(例如 (venv_b)),请停用它:

deactivate

现在,如果你尚未位于主项目目录中,请导航回该目录:

cd /home/labex/project

最后,删除虚拟环境目录:

rm -rf my_venv project_a project_b

此命令将删除 my_venvproject_aproject_b 目录及其内容,包括虚拟环境。

总结

在这个实验中,你已经学会了如何使用 deactivate 命令停用 Python 虚拟环境。你还探索了虚拟环境对于管理项目依赖项的重要性,以及如何有效地在不同的项目环境之间切换。这项技能对于保持干净和有组织的开发工作流程至关重要。