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 依然是唯一能打通两者的工具。

总结

工具PythonC++速度易用
venv-😐
Poetry🚀😊
uv😊
conda🐌😊
Miniforge🚀😊

Miniforge 不是最快的,不是最轻的,但它是最全能的。

当你:

  • 写 Python 时需要 C++ 库
  • 在 Windows 上开发但需要 Linux 工具链
  • 需要多个 Python 版本共存
  • 不想折腾一堆工具

Miniforge 就够了。


参考资料