- 1.什么是 venv?
- 2.如何创建 venv?
- 3.如何激活 venv?
- 4. 如何管理依赖?
- 5. 退出和删除 venv
- 6. venv vs. virtualenv vs. conda
- 7. 结论
在 Python 开发过程中,我们经常需要管理不同项目的依赖,而 venv(Virtual Environment) 是 Python 内置的轻量级虚拟环境管理工具,能够帮助我们在不同项目之间隔离依赖,避免环境冲突。
本文将详细介绍 venv 的使用方法,包括创建、激活、管理和删除虚拟环境,并结合实际案例帮助开发者高效管理 Python 项目。
1. 什么是 venv?
venv 是 Python 3.3 及以上版本提供的 虚拟环境管理工具,用于创建独立的 Python 运行环境。
1.1 为什么需要 venv?
在不同的 Python 项目中,我们可能需要使用不同版本的库。例如:
- 项目 A 需要 Django 3.2
- 项目 B 需要 Django 4.0
如果没有 venv,我们的 Python 运行环境会变得混乱,可能导致软件冲突。而 venv 可以:
- 隔离项目依赖,避免不同项目的库版本冲突。
- 保持全局 Python 环境干净。
- 方便部署和迁移,让项目运行更稳定。
2. 如何创建 venv?
在 Python 3.3 及以上版本,我们可以使用 venv 模块来创建虚拟环境。
2.1 基本命令
在项目目录下运行以下命令创建虚拟环境:
python -m venv .venv
其中:
- python -m venv 是创建虚拟环境的命令。
- .venv 是虚拟环境的名称,可以自定义。
执行后,.venv
目录将被创建,包含 Python 解释器和基础库。
3. 如何激活 venv?
创建 venv 后,我们需要激活它才能在其中运行 Python 和安装库。
3.1 Windows 下激活 venv
【注意】Win11下执行如下命令会报错,解决方案见文末
.venv\Scripts\activate
激活成功后,命令行前会出现 (.venv)
,表示当前正在使用该虚拟环境。
3.2 macOS/Linux 下激活 venv
source .venv/bin/activate
同样,激活后会看到 (.venv)
前缀。
4. 如何管理依赖?
在 venv 中,我们可以使用 pip 安装、列出和管理项目依赖。
4.1 安装库
在虚拟环境激活状态下,直接运行:
pip install requests
4.2 查看已安装库
pip list
4.3 导出依赖(生成 requirements.txt
文件)
pip freeze > requirements.txt
4.4 从 requirements.txt
安装依赖
如果要在另一台设备上安装相同的依赖,可以运行:
pip install -r requirements.txt
5. 退出和删除 venv
5.1 退出虚拟环境
要退出 venv,运行:
deactivate
5.2 删除虚拟环境
如果不再需要 venv,可以直接删除目录:
rm -rf .venv # macOS/Linux rd /s /q .venv # Windows
6. venv vs. virtualenv vs. conda
除了 venv,我们还可以使用 virtualenv 和 conda 来管理 Python 环境。
工具 | 适用场景 | 是否内置 |
---|---|---|
venv | 适用于大部分 Python 项目 | ✅ Python 3.3+ 内置 |
virtualenv | 适用于 Python 2 或需更高级功能 | ❌ 需安装 |
conda | 适用于数据科学、机器学习 | ❌ 需安装 Anaconda |
7. 结论
venv 是 Python 内置的强大虚拟环境工具,适用于大多数 Python 项目。通过使用 venv,我们可以更轻松地管理项目依赖,避免环境冲突。
推荐使用场景:
- 需要隔离 Python 项目依赖时。
- 希望保持全局 Python 环境干净时。
- 进行 Python 项目开发和部署时。
Windows 11 执行 .venv\Scripts\activate 报错:
无法加载文件xxx,因为在此系统上禁止运行脚本
解决方案:
以管理员身份运行“Windows PowerShell”
执行如下命令后,输入“Y”
set-executionpolicy remotesigned