如何评价mamba,是一个比conda更优秀的包管理器吗?

数据科技有技术 2024-12-26 20:34:33

已经用mamba好几年了,Mamba 比 Conda 在库的安装和环境管理方面速度更快,尤其是在处理复杂的依赖关系和大量软件包时,效率提升非常明显。

Conda作为使用最为广泛的数据科学环境管理工具,可以协助我们很方便的完成创建管理环境、下载安装第三方库、软件包等操作,但其在下载资源的过程中下载速度时常令人捉急,即使使用连接速度更快的国内镜像,也摆脱不了其单线程挨个下载资源导致的低效问题。

而Mamba(黑曼巴)专为加速Conda而生,其改写了Conda下载资源的固有方式,以多线程的方式对网络资源进行并行下载,从而大幅提升Conda效率:

初识Mamba

首先我们需要安装Mamba,既然是用来加速Conda,那么我们可以直接使用下列命令来安装Mamba:

conda install -c conda-forge mamba

安装完成之后,当你运行mamba -V查看其版本时会发现返回的是Conda的版本信息,这是因为Mamba的本质是对Conda功能的覆盖,因此我们在使用Mamba时其实只要将原有的Conda语句中的conda替换为mamba即可,譬如我们常用的conda clean --all,即清空本地缓存安装包:

很有意思的是Mamba在执行命令时会先打印出logo等信息,对应其名称黑曼巴~

当然Mamba并不是重写了Conda所有的功能,只是针对一些Conda低效的功能进行重写,并添加了一些实用的新功能,接下来我们来对这些知识进行学习。

Mamba中的实用功能加速下载

作为Mamba最核心的功能,Mamba对conda install语句进行并行化改造,达到加速下载过程的目的。

以下载qgis为例,使用mamba install -c conda-forge qgis -y代替以前的安装方式,执行命令后,Mamba会在短暂获取资源下载链接之后,以并行的方式按计划同时下载多个资源,比老方法要快很多:

图3

对于其他涉及下载资源的命令譬如conda update同样适用,你可以自行体验。

查看指定库所有可用版本

这是Mamba异于Conda的新功能,使用mamba repoquery search 库名可以查看指定库全部所有可用版本,以pandas为例:

查看依赖关系

Mamba中还提供了mamba repoquery depends和mamba repoquery whoneeds,分别用于查看指定库依赖哪些库,以及指定库被哪些库依赖,如官方文档的示例:

来自:Python大数据分析 费弗里

0 阅读:3
数据科技有技术

数据科技有技术

感谢大家的关注