再见conda,你好Mamba

Mamba是一个快速的Python包管理器,它使用多线程下载和libsolv加速解决依赖,提供比conda更快的执行效率。Mamba与conda兼容,只需将conda命令替换为mamba。通过示例展示了如何使用mamba安装包和创建环境,指出环境的激活和退出仍需使用conda命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你平日使用conda下载Python package、构建环境,明明设置了国内源,依旧很慢,很慢,很慢,

是不是很抓狂,有过类似经历,文末点个赞或在看。本期介绍一个高效Python包管理器Mamba

  • 使用多线程下载repository data和packages;

  • Mamba使用libsolv加速解决依赖关系 (减少上面图中Solving environment:转圈圈的时间);

  • Mamba的核心部分是通过C++实现,以获得最大执行效率;

  • 最重要的是Mamba可与conda完美兼容 (将conda执行命令中的conda换做mamba即可)。


mamba安装

直接用conda安装,下面一行解决,

 conda install mamba -n base -c conda-forge

如果没配置conda,可以参照之前的文章简单配置一下:

简单比较一下mamba与conda使用区别,

左边是conda,右边是mamba,几乎完全一样,所以用过conda,mamba几乎不用学习就可使用。


mamba安装Python包

#以plotnine安装为例
mamba install plotnine  #完美替代龟速的conda install plotnine

3.00 MB/s还是比较喜人的,毕竟conda经常几kb/s!


mamba创建Python环境

mamba create --name python3.5 python=3.5 #完美替代conda

出现以上界面,构建成功,这里注意⚠️,环境的激活和退出只能使用conda activate和conda deactivate

conda activate python3.5 #激活python3.5环境
conda deactivate #退出python3.5环境

以上简单介绍mamba,进一步学习:https://github.com/mamba-org/mamba

### 使用 Conda 遇到 `Solving environment` 错误的解决办法 当使用 Conda 进行包管理时,可能会遇到错误提示:“Solving environment: failed with initial frozen solve. Retrying with flexible solve.” 此类问题通常发生在依赖解析阶段。 #### 方法一:更新 Conda Mamba 工具 为了提高环境构建效率以及减少此类问题的发生频率,建议先升级 Conda 到最新版本: ```bash conda update -n base conda ``` Mamba 是一个更快捷高效的替代工具用于处理复杂的依赖关系。可以考虑安装 mamba 来代替默认的 conda solver: ```bash conda install mamba -c conda-forge mamba init # 如果需要的话初始化shell配置 ``` #### 方法二:创建新的虚拟环境 如果特定软件包无法找到或与现有环境冲突,则推荐建立一个新的独立环境来隔离这些变化。这有助于避免不同项目之间的相互影响,并简化调试过程。 ```bash conda create --name myenv python=3.x conda activate myenv ``` 其中 `myenv` 可替换为目标项目的名称;而 `python=3.x` 应该设置成所需的具体 Python 版本号[^4]。 #### 方法三:调整通道优先级添加额外资源库 有时官方仓库可能缺少某些较新发布的组件或是地区访问速度不佳。此时可以通过增加其他可信源作为补充渠道,同时适当修改频道顺序以优化下载路径。 ```bash conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --set channel_priority strict ``` 上述命令将清华镜像站设为首选位置之一,并启用严格模式下的通道优先策略[^2]。 #### 技术背景解释 此现象的根本原因是由于 Conda 的两种求解算法——冻结(frozen)方式试图保持已有的显式指定版本不变,仅允许未被固定的其余部分变动;灵活(flexible)则放松了这一约束条件,允许更大范围内的组合尝试直至成功为止。然而即使如此仍有可能因为网络状况、本地缓存等因素最终未能达成一致的结果[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值