很多开发机上都会留下一个巨大的 anaconda3 目录。它不是坏东西,但也不是每台机器都需要。以前写 Python,很多人默认装 Anaconda;现在如果只是写脚本、后端服务、自动化工具或普通工程项目,可以有更轻的选择。
这篇整理一下常见 Python 包和环境管理方式:uv、venv + pip、Poetry、Conda 分别适合什么场景。
先分清两个问题
Python 环境管理其实有两层:
- Python 版本管理:用哪个 Python,比如 3.11、3.12、3.13。
- 项目依赖管理:这个项目装哪些包,比如
requests、fastapi、pandas。
很多工具会同时碰这两件事,所以容易混。
比如:
pyenv主要管 Python 版本;venv主要管项目隔离环境;pip主要装包;- Poetry 主要管项目依赖和打包;
- Conda 同时管 Python、包和部分系统级依赖;
uv正在把虚拟环境、装包、锁定依赖、运行命令这些事情整合起来。
普通开发优先考虑 uv
现在新项目我会优先考虑 uv。它速度快,命令清爽,适合日常脚本、后端、小工具和自动化项目。
创建虚拟环境:
uv venv
安装依赖:
uv pip install requests
安装 requirements.txt:
uv pip install -r requirements.txt
新建项目:
uv init
uv add requests fastapi
uv run python main.py
它的好处是:快、轻、项目内聚,适合在一台已经有很多开发工具的机器上减少环境负担。
如果你现在主要写 Java、Node、少量 Python 脚本,uv 比完整 Anaconda 更合适。
最稳妥的传统组合:pyenv + venv + pip
传统组合仍然值得知道:
pyenv install 3.12.8
pyenv local 3.12.8
python -m venv .venv
source .venv/bin/activate
pip install requests
这套的优点是所有人都懂,兼容性强,老项目很容易跑起来。
缺点是命令多,依赖锁定不够现代。如果项目要长期维护,最好配合 requirements.txt、pip-tools 或直接换到 uv / Poetry。
Poetry 适合标准 Python 项目
Poetry 适合你明确要维护一个 Python 包、命令行工具或后端应用时使用。
poetry init
poetry add requests
poetry run python main.py
它会把项目信息放进 pyproject.toml,比散落的 requirements.txt 更工程化。
Poetry 的优点是规范,适合发布包和团队协作。缺点是速度和体验上现在会被 uv 挑战。新项目如果没有历史负担,可以先试 uv;已经用 Poetry 的项目,也没必要急着迁移。
Conda 适合科学计算,不适合默认常驻
Conda 的价值在于它不只管 Python 包,还能处理一些非 Python 的二进制依赖,比如科学计算、机器学习、地理数据、图像处理、CUDA 相关依赖。
适合 Conda 的场景:
- Jupyter;
- NumPy / SciPy / Pandas 重度使用;
- PyTorch / TensorFlow;
- 需要复杂 C/C++ 动态库;
- 数据科学课程或实验环境。
不太适合 Conda 的场景:
- 普通脚本;
- Web 后端;
- 小型 CLI;
- 自动化工具;
- 偶尔跑一两个 Python 文件。
完整 Anaconda 很大,装完以后很容易几 GB 起步。如果确实需要 Conda,更建议用 Miniforge 或 Mambaforge 这类轻量发行版,再按需安装依赖。
一台开发机可以这样定规则
我会这样分:
| 场景 | 推荐 |
| — | — |
| 新 Python 小工具 | uv |
| 老项目 | 先按项目原来的 venv / pip / Poetry |
| 标准 Python 包或应用 | uv 或 Poetry |
| 数据科学和机器学习 | Miniforge / mamba |
| 只偶尔跑脚本 | uv run 或项目内 .venv |
核心原则是:不要为了偶尔写 Python,就在机器上常驻一个完整 Anaconda。
删除 Anaconda 前检查什么
如果准备删除 ~/anaconda3,先确认几个点:
which python
which conda
conda env list
再检查 shell 配置里是否有 conda 初始化片段:
grep -n "conda" ~/.zshrc ~/.zprofile ~/.bash_profile 2>/dev/null
如果你已经不用 conda,可以删除 ~/anaconda3,并清掉 shell 配置里的 conda 初始化块。以后需要科学计算时,再安装更轻的 Miniforge。
我的建议
日常开发机上,Python 环境不要追求“一套工具管全部”。更好的方式是按场景选:
- 默认用
uv; - 老项目尊重原来的环境;
- 做 Python 包时用
uv或 Poetry; - 真做数据科学时再用 Conda;
- 完整 Anaconda 不再作为默认选择。
这样既不会牺牲 Python 开发体验,也能避免几年以后回头一看,家目录里躺着一个越来越大的 anaconda3。




