Python 和 C++ 开发者,一个 Miniforge 足矣
打开 Reddit 的 Python 版块,每隔几天就会有人问:“我应该用 Poetry 还是 pipenv?"、“uv 真的那么快吗?"、“conda 会被淘汰吗?”
点开评论区,永远在吵。有人推荐 Poetry,有人吹 uv,有人说 conda 才是王道。
作为一个同时用 Python 和 C++ 的开发者,你可能更纠结——Python 的 venv 管不了 C++ 库,conda 又总是被说"慢”。
其实,你可能只需要一个工具:Miniforge。
先说结论
如果你是:
- Python 开发者(Web/脚本/通用)
- C++ 开发者(需要各种库)
- 数据科学/机器学习从业者
- 交叉编译/多平台开发者
Miniforge = 一个工具搞定全部
为什么不是别的?
让我们看看各种工具的痛点:
venv / virtualenv
python -m venv myenv
source myenv/bin/activate
pip install numpy
问题来了:
- ❌ 只管 Python 包,C++ 库?装不了
- ❌ Python 版本切换?需要 pyenv
- ❌ 依赖锁定?需要额外工具
三个工具才能干一件事。
Poetry
poetry new myproject
poetry install
很优雅,但:
- ❌ C++ 包?不支持
- ❌ 非 Python 语言?不支持
- ❌ 某些科学计算包版本冲突?解不出来
如果你只写纯 Python,Poetry 很好。但你有 C++ 需求?它帮不上。
uv
2026 年的明星,快得离谱:
uv pip install numpy pandas torch # 秒级完成
但:
- ❌ C++ 库?还是要自己编译
- ❌ CUDA 工具链?需要额外配置
- ❌ 某些包的预编译二进制?只在 conda 有
uv 是最快的 Python 包管理器,但它管不了非 Python 的世界。
Anaconda / Miniconda
比上面好一点,能装 C++ 包了:
conda install gcc_linux-64 eigen
但:
- ⚠️ 默认频道包旧、更新慢
- ⚠️ 商业使用有许可证限制
- ⚠️ 依赖解析曾经慢得令人发指
能用,但体验不够现代。
Miniforge 的优势
Miniforge 是什么?用一句话说:
Miniforge = Miniconda 的社区版,默认用 conda-forge 频道,预装 mamba 加速
它解决了什么?
| 问题 | Miniforge 的解法 |
|---|---|
| Python 包管理 | ✅ conda install |
| C++ 库管理 | ✅ conda install gcc eigen boost |
| Python 版本切换 | ✅ conda create -n py312 python=3.12 |
| 依赖解析慢 | ✅ 预装 mamba(C++ solver,快 10-100 倍) |
| 包版本旧 | ✅ 默认 conda-forge(社区维护,更新快) |
| 多架构支持 | ✅ ARM/POWER/x86 都有预编译包 |
| 商业使用 | ✅ 完全开源,无限制 |
真实对比
安装 PyTorch + CUDA 支持:
# uv 需要指定额外 index
uv pip install torch --index-url https://download.pytorch.org/whl/cu121
# pip 更慢,还需要手动装 CUDA
pip install torch
# 然后去 NVIDIA 下载 CUDA toolkit...
# Miniforge 一步到位
conda install pytorch cuda-toolkit # 自动搞定依赖
实战指南
安装
# macOS/Linux
curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh
bash Miniforge3-$(uname)-$(uname -m).sh
# Windows
# 下载 .exe 安装包,双击运行
基础使用
# 创建新环境,指定 Python 版本
conda create -n myproject python=3.12
# 激活环境
conda activate myproject
# 安装 Python 包
conda install numpy pandas requests
# 安装 C++ 库(Windows 上也能用!)
conda install eigen boost-cpp nlohmann_json
# 查看已安装的包
conda list
# 退出环境
conda deactivate
导出和复现环境
# 导出环境配置
conda env export > environment.yml
# 在另一台机器复现
conda env create -f environment.yml
多 Python 版本共存
# Python 3.10 环境
conda create -n py310 python=3.10
conda activate py310
# Python 3.12 环境
conda create -n py312 python=3.12
conda activate py312
# 任意切换
conda activate py310 # 切回 3.10
常见场景
场景 1:纯 Python Web 项目
conda create -n webapp python=3.12
conda activate webapp
conda install fastapi uvicorn sqlalchemy
用 conda 还是 pip?
- 主流库都在 conda-forge,直接用 conda
- 某些冷门库可能只有 PyPI,用 pip 也可以:
pip install 那个冷门库
场景 2:C++ 项目需要依赖库
conda create -n cpplib
conda activate cpplib
conda install eigen nlohmann_json boost-cpp cmake ninja
# 查看库的路径
conda activate cpplib
echo $CONDA_PREFIX # 库都在这里
为什么不用系统包管理器?
- macOS 的 Homebrew 会装到
/usr/local,可能冲突 - Ubuntu 的 apt 版本老旧
- Windows 根本没有统一的包管理
- conda 把所有东西隔离在环境里,干净清爽
场景 3:GPU 深度学习
conda create -n gpu python=3.11
conda activate gpu
conda install pytorch torchvision pytorch-cuda=12.1
一行搞定,不用折腾驱动、不用手动装 CUDA。
场景 4:交叉编译
# 为 Linux ARM64 编译
conda install -c conda-forge gcc_linux-64 binutils
# 为 Windows 编译(在 Linux 上)
conda install mingw-w64
一些小技巧
1. 优先用 mamba
Miniforge 预装了 mamba,它是 conda 的 C++ 版,速度飞快:
# 把 conda 换成 mamba,命令完全一样
mamba create -n fastenv python=3.12
mamba install numpy pandas
2. 别在 base 环境瞎装
# ❌ 不推荐
conda install numpy pandas
# ✅ 推荐
conda create -n myproject python=3.12
conda activate myproject
conda install numpy pandas
保持 base 环境干净,需要什么就创建新环境。
3. conda 和 pip 可以混用
conda activate myenv
conda install numpy pandas # 先用 conda 装大的
pip install 某个只有 PyPI 才有的包 # 再用 pip 补充
但注意:优先用 conda,pip 作为补充。conda 能更好地处理非 Python 依赖。
什么时候不用 Miniforge?
没有工具是万能的,以下场景 Miniforge 不是最优:
| 场景 | 更好的选择 |
|---|---|
| 纯前端开发(Node.js) | fnm / nvm |
| Rust 开发 | rustup |
| Go 开发 | go 自带 |
| 只想要最快的 pip 替代 | uv |
但如果你是 Python + C++ 混合开发,Miniforge 依然是唯一能打通两者的工具。
总结
| 工具 | Python | C++ | 速度 | 易用 |
|---|---|---|---|---|
| venv | ✅ | ❌ | - | 😐 |
| Poetry | ✅ | ❌ | 🚀 | 😊 |
| uv | ✅ | ❌ | ⚡ | 😊 |
| conda | ✅ | ✅ | 🐌 | 😊 |
| Miniforge | ✅ | ✅ | 🚀 | 😊 |
Miniforge 不是最快的,不是最轻的,但它是最全能的。
当你:
- 写 Python 时需要 C++ 库
- 在 Windows 上开发但需要 Linux 工具链
- 需要多个 Python 版本共存
- 不想折腾一堆工具
Miniforge 就够了。