掘地攀登
100.61M · 2026-03-29
想象你在家里装修。项目 A 是“中式风”,需要红木家具;项目 B 是“工业风”,需要水泥质感。如果你把所有家具都堆在客厅(全局环境),最后家里会乱得没法住。
venv 是 Python 3.3 之后官方内置的模块。它是 virtualenv 的官方精简版。
.venv),把 Python 的快捷方式和 pip 放进去。venv。requests、pandas,它是最稳的选择。pip freeze > requirements.txt 手动管理。如果你是做数据分析、机器学习或深度学习的,你一定绕不开 Conda(包括 Anaconda 和 Miniconda)。
pip 经常装不上这些非 Python 依赖,但 Conda 可以直接把编译好的二进制文件(包括 C 库、甚至 R 语言)一起打包带走。conda create -n py39 python=3.9,它会自己去下载一个 3.9 的解释器,完全不依赖系统环境。~/anaconda3/envs),切换起来非常方便。uv 是 2024 年横空出世的神级工具,由 Astral 团队(也是 Ruff 的开发者)用 Rust 编写。它的目标是:取代 pip、pip-compile、venv、pyenv 和 virtualenv。
uv lock 生成锁定文件,确保团队每个人的环境完全一致。它甚至不需要你 source bin/activate,直接 uv run python script.py 就能在隔离环境中运行。为了让你一眼看穿该选谁,我们做一个维度对比:
| 维度 | venv | Conda | uv |
|---|---|---|---|
| 安装难度 | 内置,无需安装 | 需下载安装包 (数百MB) | 单文件下载 (数MB) |
| 创建速度 | 慢 (受磁盘I/O限制) | 极慢 (依赖解析耗时) | 秒开 (快到怀疑人生) |
| Python版本管理 | 不支持 | 支持 | 支持 (自动下载) |
| 非Python依赖 | 不支持 (需系统预装) | 强项 (自带编译库) | 较弱 (主要管PyPI包) |
| 磁盘占用 | 每个环境一份副本 | 每个环境一份副本 | 极省 (硬链接共享缓存) |
| 主要受众 | Web开发、简单脚本 | 数据科学家、AI研究员 | 追求效率的现代开发者 |
选择工具不看“谁最强”,而看“你做什么”。
无脑选 Conda。 虽然它慢,但它能帮你搞定那些复杂的底层驱动和 C 库。当你在 Windows 上痛苦地尝试 pip install 却报错找不到编译器时,Conda 就是你的救命稻草。
选 venv。
如果你只是写个 Flask 接口或者爬虫脚本,venv 的纯净和原生能让你少折腾很多工具配置。它是最“标准”的 Python 方式。
强烈推荐选 uv。
如果你已经受够了 pip install 时的漫长等待,或者厌倦了手动管理 pyenv,uv 会让你感觉打开了新世界的大门。它是目前 Python 生态里最先进、最符合直觉的工具。
Python 的环境管理正在经历一场“从手动到自动,从慢速到极致”的进化。