在日常 Python 开发中,如果你碰到过这些问题:
- 同一个项目需要不同版本的库;
- 安装了某个库后,另一个项目报错了;
- 想重装 Python,又怕破坏系统环境……
那你就该了解一下——虚拟环境(Virtual Environment)。
虚拟环境可以让每个项目用上独立的 Python 和依赖版本,互不干扰,干净整洁,非常重要。
参考文章:
目录
- 什么是 Python 虚拟环境
- 为什么要使用虚拟环境
- venv:Python 官方推荐
- virtualenv:更灵活的替代方案
- virtualenvwrapper:管理多个虚拟环境的利器
- conda:不仅是虚拟环境,还是包管理器
- pip:配合虚拟环境的依赖管理
- requirements.txt:保存项目依赖的法宝
- 推荐使用场景与总结
1. 什么是 Python 虚拟环境
Python 虚拟环境就是一个独立的 Python 运行环境,有它自己的解释器、pip 和依赖包目录。你可以把它理解成“隔离的 Python 小黑屋”。
用虚拟环境创建的项目,不会污染全局 Python 环境,也不会互相影响。
2. 为什么要使用虚拟环境
- ✅ 避免包冲突:不同项目可以使用不同版本的依赖库。
- ✅ 版本控制:升级或降级某个库不影响其他项目。
- ✅ 跨平台兼容:开发和部署环境可以做到一致。
- ✅ 项目结构清晰:用 requirements.txt 可以快速复制环境。
3. venv:Python 自带的虚拟环境工具
从 Python 3.3 开始,Python 官方就自带了 venv
模块,够用、轻量。
创建虚拟环境
python3 -m venv myenv
myenv
是你自定义的虚拟环境目录名。
激活虚拟环境
-
macOS/Linux:
source myenv/bin/activate
-
Windows:
myenv\Scripts\activate
激活后命令行前面会多一个 (myenv)
,表示你进入了虚拟环境。
在虚拟环境中,你再执行 python 命令就是完全隔离的 解释器了。
退出虚拟环境
deactivate
4. virtualenv:适配更多版本的老牌选手
virtualenv
是比 venv
更老、更强大的第三方工具,支持 Python2 和 Python3,功能丰富。
安装 virtualenv
pip install virtualenv
创建虚拟环境
virtualenv venv-name
你还可以指定 Python 版本:
virtualenv -p /usr/bin/python3.11 venv-name
激活/退出方式和 venv
一样。
5. virtualenvwrapper:虚拟环境管理利器(推荐给重度用户)
管理多个虚拟环境很痛苦?virtualenvwrapper
就是为此而生的。
安装
pip install virtualenvwrapper
配置(加到 shell 配置文件里)
export WORKON_HOME=$HOME/.virtualenvs
source $(which virtualenvwrapper.sh)
常用命令
mkvirtualenv myenv
:创建环境并自动进入workon myenv
:进入某个环境deactivate
:退出当前环境rmvirtualenv myenv
:删除环境lsvirtualenv
:列出所有虚拟环境
它能自动管理虚拟环境的存储位置和激活逻辑,省心!
6. conda:数据科学界常用
conda
是 Anaconda 或 Miniconda 提供的环境与包管理器,尤其适合科学计算、机器学习。
创建 conda 虚拟环境
conda create -n myenv python=3.11
激活 / 退出环境
conda activate myenv
conda deactivate
安装包
conda install numpy pandas
与 pip 混合使用
你也可以在 conda 环境中用 pip 安装:
pip install requests
7. pip:虚拟环境安装包
pip
是 Python 的官方包管理工具,通常虚拟环境创建后都会自带它,每个pip都有对应的 python 虚拟环境解释器。
安装包
pip install flask
查看已安装包
pip list
卸载包
pip uninstall flask
8. requirements.txt:依赖管理神器
虚拟环境配好了,怎么交给别人用呢?答案是:导出依赖文件。
导出依赖
pip freeze > requirements.txt
安装依赖
pip install -r requirements.txt
别人用这份文件,就能和你拥有一模一样的环境。
9. 推荐使用场景与总结
场景 | 推荐工具 |
---|---|
简单脚本、轻量项目 | venv |
兼容多版本、需要定制 Python 路径 | virtualenv |
管理多个环境、懒得记路径 | virtualenvwrapper |
科学计算、机器学习 | conda |
安装 Python 包 | pip |
项目部署、迁移 | requirements.txt |
🧠 总结一下
- 虚拟环境是 Python 项目的必备技能;
venv
简单直接,够用就行;virtualenv
+virtualenvwrapper
适合多项目党;conda
适合搞 AI/数据分析的;pip
+requirements.txt
是最佳搭档。
✅ 开发示例
python3 -m venv myenv
source myenv/bin/activate
pip install flask
pip freeze > requirements.txt