conda、pip、mamba、anaconda、miniconda、miniforge相互比较

初学python的爱好者,都有一个共同的地方,就是安装环境总是安装不好,这个包安了卸,卸了装,总是装不好,不知道是什么原因。学习python的热情,大大降低,甚至都有不想学的念头。今天我们讲解conda、pip、mamba、anaconda、miniconda、miniforge相互之间比较和关系。

conda、pip、mamba、anaconda、miniconda、miniforge,都是与python的包管理有关的环境程序,搞清楚他们的关系非常重要。它可以让我们轻松建立我们的开发环境,轻松驾驭包的安装和管理。

Anaconda vs Miniconda vs Miniforge

他们的核心都是包含conda这一工具,来实现 python 环境(environment) 和 包(package) 管理的,(其实conda不仅仅可以用来管理python,很多语言R, Java, C都支持)。

  • Anaconda 和 Miniconda 是一个公司的产品,商用是付费的,个人暂时免费;
  • Miniforge是由社区主导,用GitHub托管,完全免费。
  • Miniconda 和 Miniforge 是差不多的产物,mini代表着轻量化,
  • Anaconda是完整版,就略显臃肿,里面包括spyder、Jupter Notebook、Ananconda navigator等程序环境。

Anaconda vs Miniconda

(老司机) Miniconda = Python + conda,安装最小的支持包,如openssl, ncurses...

(新司机) Anaconda = Python + conda + meta package ,如
Anaconda3-2022.05-Windows-x86_64,安装至少不低于400个常见的支持包,如curl, numpy, pandas...

也就是说,Anaconda = Miniconda + more packages。Anaconda 一般还包括一个图形界面spyder,主要是多了一些基本的包,常见的包,安装完后,一般就可以直接使用,很省事,不用再单独安装了,但也有一些可能一直用不到,占用了许多空间。Miniconda 可以按需求安装库,但也可以借助conda install anaconda手动实现anaconda一样的预安装包 pre-installed package。Anaconda是安装初期花费更多时间下载,Miniconda是后期花更多时间单独安装。主语用哪一个,就看个人爱好了。我都都在Anaconda环境下教学,如果有特殊的包环境,我就建立虚拟环境,占用空间,反正现在硬盘大小不是问题,也不是主要矛盾。

Miniconda vs Miniforge

  • Miniforge 使用conda-forge 作为默认 channel
  • Miniconda 使用anaconda.org 作为默认channel。

另外:Miniforge 比 Anaconda、Miniconda 更早支持了Apple M1芯片。2022年5月6日Anaconda官方宣布原生支持了Apple M1版本。在苹果官方的Tensorflow加速训练教程中也是推荐的Miniforge。

channel含义:conda channels (源) 是 packages 存储的位置,也即是你是从哪个来源下载这个包,对应到conda内部处理则是下载文件的链接。因为不同源会有相同名字的包,因此必须指定来源,同时安装conda的时候也会有一个默认的channel。目前主流的就是 conda-forge,齐全且更新快。如果有多个channel,他们会按顺序确定优先级,优先的源上找不到,就会到下一个优先级的源上去找。还可以设置channel的优先级是否strict,如果是strict的话,则只会在这一个源上查找。

Conda vs Pip

  • conda包管理的来源是anaconda.org,而pip的来源是 PyPI (Python Package Index)。
  • pip是专门针对python打包而成的,属于wheels or source distributions,需要compiler来安装;conda的包是二进制(conda packages are binaries),因此包含例如C语言写的库,同时也不需要compilers。
  • pip的没有严格的依赖冲突检查,而conda是会有严格的依赖冲突检查。

通常我们安装一个python包,直接用pip install <pkg-name> 就行,但如果我们想要多个python环境,也就需要用到virtualenv;同时如果这个包没有不是 Python packages,是用C语言写的;这时候就需要Conda登场了,它同时解决了以上所有问题。

言而总之,优先推荐的是用conda创建虚拟python环境,使用conda安装需要的包,尤其是需要一些其他运行环境模块的时候。如遇见在使用过程中包出现问题的时候,就卸载后,使用pip install进行在线安装,或者直接下载对应的whl包进行安装。如果遇见特殊编译的,可以根据开发者的说明使用conda进行安装。个人推荐优先conda install,不行再pip install

需要注意的是 pip 和 conda 安装包对象的名称可能是不一样的,这个要看官网的说明,例如conda --- pytorch,pip --- torch。

Conda vs Mamba

我在python编程实践:mamba加速神器,体验飞一般的感觉,已经做了解释,总结一下:

mamba是用于管理环境的 CLI 工具。相比于 conda,mamba 是用 c++重写了 conda 的部分功能,运行效率显著提高,可以进行并行的下载,使用 rpm 包管理工具中的 libsolv,可以更快的解决环境依赖问题。mamba 的使用也比较简单,首先使用 conda 安装 mamba,后面所有用到 conda 的地方,都可以使用 mamba 替换即可。

安装:conda install mamba -c conda-forge

mamba优点:

  • 自带多线程下载下载repository data和packages;
  • mamba使用​libsolv加速解决依赖关系​​ (安装过程中Solving environment:转圈圈的时间);
  • Mamba的核心部分是通过C++实现,以获得最大执行效率;
  • 最重要的是​​Mamba可与conda完美兼容,学习成本极小​​ (将conda执行命令中的conda换做mamba即可)。

总而言之:mamba可完全替换conda,提高包的管理的效率,和包安装的成功率。

最后,如果您喜欢我的文章,可以点个“关注”,成为铁粉后能第一时间收到文章推送。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值