如何评价mamba,是一个比conda更优秀的包管理器吗?
已经用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
,分别用于查看指定库依赖哪些库,以及指定库被哪些库依赖,如官方文档的示例: