Python 多环境管理,本质是解决 不同项目依赖冲突 + 不同 Python 版本共存 的问题。下面系统梳理一遍,从「官方方案」到「工程级方案」。
一、官方方案(最基础)
1️⃣ venv(Python 官方推荐)
创建环境
python -m venv myenv
激活
myenv\Scripts\activate
source myenv/bin/activate
优点
✔ 官方内置 ✔ 简单 ✔ 稳定
缺点
✘ 不能管理多个 Python 版本 ✘ 不解决 Python 本身的版本切换
二、虚拟环境增强工具
2️⃣ virtualenv
pip install virtualenvvirtualenv myenv
现在一般已被 venv 替代。
三、管理多个 Python 版本
3️⃣ pyenv(Linux / macOS 强烈推荐)
可以:
- 安装多个 Python 版本
- 切换全局版本
- 针对目录自动切换版本
安装后:
pyenv install 3.11.7pyenv global 3.11.7pyenv local3.10.13
优点:
✔ 专门解决版本问题 ✔ 非常适合开发环境
缺点:
✘ Windows 原版不支持(有 pyenv-win)
4️⃣ pyenv-win(Windows)
Windows 下版本管理首选。
四、工程级解决方案
5️⃣ conda(数据科学首选)
来自 Anaconda。
特点:
- 管理 Python 版本
- 管理虚拟环境
- 管理 C/C++ 库
- 管理 CUDA 等依赖
创建环境:
conda create -n myenv python=3.10conda activate myenv
优点:
✔ 依赖解决能力强 ✔ 科学计算领域必备 ✔ 支持非 Python 包
缺点:
✘ 体积大 ✘ 启动慢
五、现代工程方案(推荐)
6️⃣ pipenv
- 把 pip + venv 整合
- 自动生成 Pipfile
pip install pipenvpipenv install
现在使用率下降。
7️⃣ poetry(强烈推荐)
官网:Python Poetry
特点:
✔ 自动创建虚拟环境 ✔ 锁定依赖 ✔ 类似 npm/yarn ✔ 更现代
poetry new myprojectpoetry add requests
优点:
✔ 非常适合团队项目 ✔ 依赖管理清晰 ✔ 支持打包发布
六、超现代方案(2024以后趋势)
8️⃣ uv(非常快)
来自 Astral
特点:
✔ Rust 编写 ✔ 比 pip 快 10-100 倍 ✔ 集成虚拟环境 ✔ 替代 pip + venv + pip-tools
uv venvuv pip install requests
现在是 Python 社区增长最快的工具之一。
七、容器方案
9️⃣ Docker
使用:
适合:
✔ 生产部署 ✔ 后端服务 ✔ CI/CD
缺点:
✘ 不适合简单本地开发
八、对比总结
🔥 如果让我给建议
💻 普通开发
👉 pyenv + poetry 或 👉 uv(最简单)
🧪 AI / 数据科学
👉 conda
🚀 生产环境
👉 Docker