在Python开发中,虚拟环境是一个很重要的工具。它能够为每个项目创建独立的Python运行环境,避免不同项目之间的包版本冲突。
想象一下这样的场景:你正在开发两个Python项目。
项目A需要使用Django 3.2版本,因为一些老代码只兼容这个版本。
项目B是全新项目,想使用最新的Django 4.0版本。
如果在电脑上直接安装,两个版本会互相冲突。虚拟环境就是为了解决这个问题而生的。
使用虚拟环境的好处:
项目隔离:每个项目有自己的Python环境和安装的包
版本管理:不同项目可以使用不同版本的库
环境干净:不会弄乱系统全局的Python环境
便于部署:可以精确记录项目需要的所有依赖
Python从3.3版本开始,内置了venv模块,不需要额外安装。
首先确认你的Python版本:
python --version
# 或者
python3 --version如果版本是3.3或更高,就可以使用venv。
# 创建项目目录
mkdir my_project
cd my_project
# 创建虚拟环境
python -m venv venv这里的venv是虚拟环境的名称,你可以用其他名字,比如.venv、env等。
创建成功后,会生成一个venv目录,里面包含:
venv/
├── bin/ # Linux/Mac系统
│ ├── activate # 激活脚本
│ ├── python # Python解释器
│ └── pip # pip包管理器
├── Scripts/ # Windows系统
│ ├── activate # 激活脚本
│ ├── python.exe # Python解释器
│ └── pip.exe # pip包管理器
└── Lib/ # 安装的第三方库创建好环境后,需要激活才能使用。
# 命令提示符(CMD)
venv\Scripts\activate
# PowerShell
venv\Scripts\Activate.ps1source venv/bin/activate激活成功后,命令行提示符前面会显示环境名称:
(venv) $这表示你现在处于虚拟环境中,所有Python相关操作都会在这个环境中进行。
在激活的环境中安装包,只会影响当前环境:
(venv) pip install django
(venv) pip install requests pandas numpy可以指定版本号:
(venv) pip install django==3.2.12(venv) pip list输出类似:
Package Version
---------- -------
Django 3.2.12
pip 21.2.4
setuptools 57.4.0把当前环境安装的包列表保存到文件:
(venv) pip freeze > requirements.txtrequirements.txt文件内容类似:
Django==3.2.12
requests==2.26.0
pandas==1.3.5
numpy==1.21.2在新环境中,可以一次性安装所有依赖:
(venv) pip install -r requirements.txt完成工作后,退出虚拟环境:
(venv) deactivate退出后命令行提示符会恢复正常,Python操作会回到系统全局环境。
让我们看一个完整的Django项目开发流程:
# 创建项目目录
mkdir my_blog_project
cd my_blog_project
# 创建虚拟环境
python -m venv venv
# 激活环境
source venv/bin/activate # Linux/Mac
# 或者 venv\Scripts\activate # Windows
# 安装Django和其他依赖
(venv) pip install django==3.2.12
(venv) pip install pillow # 图片处理库
(venv) pip install markdown # Markdown支持
# 创建Django项目
(venv) django-admin startproject myblog
(venv) cd myblog
# 运行开发服务器
(venv) python manage.py runserver
# 导出依赖列表
(venv) pip freeze > requirements.txt如果下载包速度慢,可以使用国内镜像:
(venv) pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name或者设置永久镜像:
(venv) pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple# 查看当前Python路径
(venv) which python
# 或者 where python # Windows
# 查看Python版本
(venv) python --version
# 查看所有已安装包
(venv) pip list直接删除虚拟环境目录即可:
# 先退出环境
deactivate
# 删除目录
rm -rf venv # Linux/Mac
# 或者 rmdir /s venv # Windows如果你安装了多个Python版本,可以指定使用哪个:
# 使用Python 3.8创建环境
python3.8 -m venv venv
# 使用Python 3.9创建环境
python3.9 -m venv venv创建可以访问系统已安装包的环境:
python -m venv --system-site-packages venv这样虚拟环境可以直接使用系统里已经安装的包。
创建不包含pip的轻量级环境:
python -m venv --without-pip venv如果激活失败,检查路径是否正确:
# Windows
.\venv\Scripts\activate
# Linux/Mac
source ./venv/bin/activate有时候需要给激活脚本执行权限:
chmod +x venv/bin/activate如果虚拟环境有问题,最简单的办法是删除重建:
deactivate
rm -rf venv
python -m venv venv
source venv/bin/activate一个好的项目结构应该是:
my_project/
├── venv/ # 虚拟环境(不提交到Git)
├── src/ # 源代码
│ ├── __init__.py
│ └── main.py
├── requirements.txt # 依赖列表
├── README.md # 项目说明
└── .gitignore # Git忽略文件在.gitignore文件中添加:
# 虚拟环境
venv/
.venv/
env/每个项目单独环境:为每个Python项目创建独立的虚拟环境
及时记录依赖:安装新包后记得更新requirements.txt
不要提交环境:虚拟环境目录不要提交到版本控制
使用有意义的名称:环境名称要能反映项目内容
定期清理:删除不再使用的虚拟环境释放空间
文档说明:在README中说明如何设置环境
# 1. 克隆项目
git clone https://github.com/user/project.git
cd project
# 2. 创建虚拟环境
python -m venv venv
# 3. 激活环境
source venv/bin/activate
# 4. 安装依赖
pip install -r requirements.txt
# 5. 开发工作...
# 编辑代码,运行测试等
# 6. 安装新包时更新依赖
pip install new_package
pip freeze > requirements.txt
# 7. 完成工作
deactivate掌握虚拟环境的使用,能够让你的Python开发工作更加规范和专业。无论是个人项目还是团队协作,这都是一个必备的技能。
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!