Conda-forge
官网:简介 | conda-forge | 社区驱动的 conda 包管理 - conda-forge 中文
什么是conda-forge?
与conda不同,conda-forge是conda命令下的一个通道(channel),用来指定包的来源地址。默认为default源,可通过-c手动指定,如conda install -c conda-forge package-name。-c conda-forge 告诉 Conda 从 conda-forge 通道中查找并安装指定的包。如果没有指定通道,Conda 会默认从 defaults 通道中查找包。
为什么使用conda-forge?
简单来说,conda-forge就是为了解决default源下某些包不存在的问题。在使用conda管理软件包时,最常接触的两个软件源就是conda-forge和conda官方的default源。以下是两个源的对比:
| 源 | conda-forge | default源 | 
|---|---|---|
| 管理主体 | 社区驱动,由全球开发者志愿者维护 | conda官方(Anaconda, Inc.)维护 | 
| 软件包数量 | 包数量庞大且持续增长,截至2025年已超过10万个,覆盖领域广泛,尤其在开源工具和新兴库方面更丰富 | 包数量相对较少,以核心常用包为主,聚焦于Anaconda生态内的经典软件 | 
| 更新速度 | 更新迭代快,社区维护者响应及时,新软件版本通常能快速上线 | 更新速度较慢,更注重稳定性,新版本软件需经过官方严格测试后才会发布 | 
| 开放性 | 完全开放,任何开发者可贡献包,审核通过后即可加入源 | 封闭性较强,仅官方团队有权限添加和更新包,普通开发者无法直接贡献 | 
| 兼容性 | 跨平台兼容性出色,通过自动化构建系统确保Windows、macOS、Linux三平台包的一致性 | 兼容性良好,但部分包可能优先适配特定平台(如部分科学计算包对Linux支持更优) | 
| 稳定性 | 社区审核+自动化测试保障稳定性,但因包更新快,极少数情况下可能出现依赖冲突 | 稳定性极高,官方严格把控包的质量和依赖关系,适合对稳定性要求严苛的生产环境 | 
其中最明显的区别就是包的数量,default源下很多包找不到,而conda-forge基本能覆盖90%以上的场景。
如何设置conda-forge?
- 确保
conda >=4.9 
conda --version
conda update conda
- 将
conda-forge添加为最高优先级频道 
conda config --add channels conda-forge
- 激活 
strict频道优先级(strict将在 conda 5.0 中默认激活) 
conda config --set channel_priority strict
除以上方法外,最推荐使用Miniforge替换Miniconda。Miniforge 是一个社区项目,旨在提供类似 Miniconda 的安装程序,并增加了一个功能,即 conda-forge 是默认频道。 它现在还包括 mamba 和 libmamba。Miniforge 是开始使用 conda-forge 的最简单方法!
Mamba
官网:Welcome to Mamba’s documentation! — documentation
什么是mamba?
Mamba是一个基于Conda的重新实现,由QuantStack开发。它旨在解决Conda在包安装速度慢、依赖解析效率低等问题。Mamba使用C++编写的libsolv库进行依赖解析,同时支持并行下载包,极大地提升了包管理的效率。Mamba完全兼容Conda的命令行接口和环境文件,用户可以无缝从Conda迁移到Mamba。
| 特性 | Conda | Mamba | 
|---|---|---|
| 依赖解析引擎 | 使用Python实现的解析引擎,在处理复杂依赖时速度较慢 | 使用C++的libsolv库,依赖解析速度快,尤其适合复杂环境 | 
| 下载速度 | 默认单线程下载,速度较慢 | 支持并行下载,可显著提升包下载速度 | 
| 命令兼容性 | 原生命令集 | 完全兼容Conda命令,可直接替换使用(如mamba install替代conda install) | 
| 环境管理 | 支持创建、激活、删除虚拟环境,管理环境变量 | 与Conda完全一致,支持所有环境管理功能 | 
| 仓库支持 | 支持defaults、conda-forge等主流仓库 | 同样支持所有Conda兼容的仓库,无额外限制 | 
| 额外功能 | 提供conda-build(包构建)、conda-env(环境管理)等子命令 | 除兼容Conda功能外,还提供mamba repoquery(仓库查询)等实用命令 | 
| 跨平台支持 | 支持Windows、macOS、Linux | 同样支持Windows、macOS、Linux | 
为什么使用mamba?
Anaconda在管理python包时有个很大的缺陷,就是conda install的时候,solving时间过长,导致体验极差,mamba是用c++重写的conda包管理器,支持多线程和并行下载,在依赖解析上速度远超conda,mamba的命令和conda的命令大部分都是一样的。
如何设置mamba?
- Anaconda和Miniconda下,安装mamba
 
conda install -c conda-forge mamba
通过conda安装的mamba只能在当前环境中使用,切换环境时命令会失效,使用起来不够方便。
推荐使用上文的Miniforge,可实现一站式安装。
mamba命令
$ mamba --helpshell                       Generate shell init scripts
create                      Create new environment
install                     Install packages in active environment
update                      Update packages in active environment
repoquery                   Find and analyze packages in active environment or channels
remove, uninstall           Remove packages from active environment
list                        List packages in active environment
package                     Extract a package or bundle files into an archive
clean                       Clean package cache
config                      Configuration of micromamba
info                        Information about micromamba
constructor                 Commands to support using micromamba in constructor
env                         See mamba/micromamba env --help
activate                    Activate an environment
run                         Run an executable in an environment
ps                          Show, inspect or kill running processes
auth                        Login or logout of a given host
search                      Find packages in active environment or channelsThis is equivalent to `repoquery search` command
大部分情况下,直接将conda替换为mamba,即可进行使用。
总结
使用Miniforge替代Miniconda,Miniforge作为轻量型安装器,默认集成conda-forge仓库,相比Miniconda能提供更丰富的社区包资源;搭配Mamba替代原生Conda命令,可在依赖解析与包下载环节实现双重加速,大幅提升环境配置效率。