Python虚拟环境(venv)完全指南
小白也能懂的虚拟环境创建与管理知识大全
什么是虚拟环境?
想象一下,虚拟环境就像给你的Python项目准备的独立小房间:
✅ 每个项目有自己的”房间”,互不干扰
✅ 可以安装不同版本的包,不会冲突
✅ 复制项目到其他电脑时,依赖包不会出错
没有虚拟环境时,所有Python项目共享同一个”大客厅”,容易导致:
❌ 包版本冲突(项目A需要Django 3.0,项目B需要Django 4.0)
❌ 系统Python环境被污染
❌ 项目依赖混乱,难以迁移
为什么需要虚拟环境?
解决项目依赖冲突
不同项目可能需要同一个包的不同版本
保持系统环境干净
避免安装全局包,防止系统Python环境被污染
方便项目管理
每个项目都有独立的依赖列表,容易复制环境
简化部署流程
轻松生成requirements.txt文件,一键安装所有依赖
💡 小技巧
每个项目都应该有自己的虚拟环境,就像每个项目有自己的文件夹一样
如何创建虚拟环境?
基本创建命令
# 创建名为”myenv”的虚拟环境
python -m venv myenv
python -m venv myenv
指定Python版本
# 使用特定Python版本创建环境
python3.9 -m venv myenv
python3.9 -m venv myenv
创建环境后的目录结构
myenv/
├── bin/ # 激活脚本(Linux/Mac)
├── Scripts/ # 激活脚本(Windows)
├── include/
├── lib/ # 安装的包存储在这里
└── pyvenv.cfg # 环境配置文件
├── bin/ # 激活脚本(Linux/Mac)
├── Scripts/ # 激活脚本(Windows)
├── include/
├── lib/ # 安装的包存储在这里
└── pyvenv.cfg # 环境配置文件
⚠️ 注意
创建环境后,还需要激活才能使用!
激活虚拟环境
Windows系统
# 进入Scripts目录
cd myenv\Scripts
# 执行激活命令
activate
cd myenv\Scripts
# 执行激活命令
activate
Linux/Mac系统
# 进入bin目录
cd myenv/bin
# 执行激活命令
source activate
cd myenv/bin
# 执行激活命令
source activate
激活成功提示
命令提示符前会显示环境名称:
(myenv) C:\Users\YourName\project>
激活后,所有Python操作只会影响当前虚拟环境
使用pip安装的包会存放在虚拟环境的lib目录中
使用虚拟环境
安装包
# 在激活的环境中安装包
(myenv) pip install pandas numpy
(myenv) pip install pandas numpy
查看已安装包
# 列出当前环境所有包
(myenv) pip list
(myenv) pip list
生成依赖文件
# 生成requirements.txt文件
(myenv) pip freeze > requirements.txt
(myenv) pip freeze > requirements.txt
根据依赖文件安装
# 在新环境中一键安装所有依赖
(myenv) pip install -r requirements.txt
(myenv) pip install -r requirements.txt
📝 最佳实践
将requirements.txt文件加入版本控制(Git),方便团队协作
退出和删除环境
退出虚拟环境
# 任何系统都可以使用这个命令
deactivate
deactivate
删除虚拟环境
虚拟环境就是一个普通文件夹,直接删除即可:
# Windows
rmdir /s /q myenv
# Linux/Mac
rm -rf myenv
rmdir /s /q myenv
# Linux/Mac
rm -rf myenv
环境复用
不需要删除环境,可以:
1. 保留环境下次继续使用
2. 复制整个环境文件夹到新位置
3. 使用requirements.txt重建环境
虚拟环境不包含项目代码,只包含Python和安装的包
虚拟环境 vs 系统环境 示意图
系统环境
全局安装的Python解释器
Python 3.9
Django 4.0
numpy 1.21
pandas 1.3
requests 2.26
➔
项目A环境
my_project_A_venv
Python 3.9
Django 3.2
numpy 1.19
项目B环境
my_project_B_venv
Python 3.9
Flask 2.0
pandas 1.4
requests 2.28
bash – 完整工作流程演示
$ # 1. 创建项目目录
$ mkdir my_awesome_project
$ cd my_awesome_project
$ # 2. 创建虚拟环境
$ python -m venv venv
$ # 3. 激活虚拟环境 (Linux/Mac)
$ source venv/bin/activate
(venv) $ # 注意提示符变化
(venv) $ # 4. 安装项目依赖包
(venv) $ pip install django pandas
(venv) $ # 5. 查看已安装包
(venv) $ pip list
Package Version
————— ——-
Django 4.0.6
pandas 1.4.3
pip 22.0.4
(venv) $ # 6. 生成依赖文件
(venv) $ pip freeze > requirements.txt
(venv) $ # 7. 退出虚拟环境
(venv) $ deactivate
$ # 提示符恢复原样
$ mkdir my_awesome_project
$ cd my_awesome_project
$ # 2. 创建虚拟环境
$ python -m venv venv
$ # 3. 激活虚拟环境 (Linux/Mac)
$ source venv/bin/activate
(venv) $ # 注意提示符变化
(venv) $ # 4. 安装项目依赖包
(venv) $ pip install django pandas
(venv) $ # 5. 查看已安装包
(venv) $ pip list
Package Version
————— ——-
Django 4.0.6
pandas 1.4.3
pip 22.0.4
(venv) $ # 6. 生成依赖文件
(venv) $ pip freeze > requirements.txt
(venv) $ # 7. 退出虚拟环境
(venv) $ deactivate
$ # 提示符恢复原样