Python環境教程(二)-環境進階之conda-forge mamba
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 install -c conda-forge package-name
- 將
conda-forge添加為最高優先級頻道(無需每次手動指定)
conda config --add channels conda-forge
設置后,直接使用常規安裝命令:conda install package-name即可安裝。
- 驗證是否成功
conda config --show channels
如果 conda-forge 在列表中,說明添加成功:
channels:
- conda-forge
- defaults
除以上方法外,最推薦使用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 --help
shell 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 channels
This is equivalent to `repoquery search` command
大部分情況下,直接將conda替換為mamba,即可進行使用。
總結
使用Miniforge替代Miniconda,Miniforge作為輕量型安裝器,默認集成conda-forge倉庫,相比Miniconda能提供更豐富的社區包資源;搭配Mamba替代原生Conda命令,可在依賴解析與包下載環節實現雙重加速,大幅提升環境配置效率。

浙公網安備 33010602011771號