conda、pip、anaconda、miniconda、miniforge、mambaforge 区分
条评论conda、pip、anaconda、miniconda、miniforge、mambaforge 区分
核心属性和本质:
- conda 和 pip 的本质是包管理工具,它们帮助用户管理和安装软件包。
- anaconda、miniconda、miniforge 和 mambaforge 的本质是环境管理工具,它们提供了一套完整的工具来管理编程环境。
来个比较容易理解的比喻:
在一个巨大的图书馆里,有各种各样的书,你想去借书看。这个图书馆就像是一个编程语言的世界,而书籍就是各种各样的代码库和工具。
conda 是一个聪明的图书管理员,它不仅能帮你找到书,还能告诉你哪些书是相互关联的,确保你借的每本书都能很好地一起工作。它不仅管理Python的书籍,还管理其他语言的书籍。
解释:一个开源的包管理系统和环境管理系统,可以用来安装、运行和升级包和它们的依赖关系。它支持多种语言。
pip 是另一个图书管理员,但它专注于Python的书籍。它很擅长找到你想要的Python书籍,但有时候它不太关心这些书是否能很好地相互协作。
解释:是Python的默认包管理工具,专为python打造,用于安装和管理Python库。
anaconda 是一个巨大的书架,上面预先放好了很多最常用的书籍,这样你就不用每次都去找图书管理员了。它特别适合那些不想花太多时间挑选书籍的人。
解释:是一个发行版,由Anaconda公司开发,里面除了conda,还包含了Python以及许多科学计算相关的包。
miniconda 是一个更小的书架,上面只有几本你开始阅读时必须的书籍。如果你需要更多的书,你可以去找conda图书管理员帮你。
解释:是anaconda的一个轻量级版本,只包含conda和其依赖项,没有预装其他任何包。Miniconda的优势在于它的体积较小,安装过程更快,用户可以根据需要自行选择和安装所需的包。
miniforge 和 mambaforge 是类似于miniconda的两个不同品牌的小书架,但它们来自不同的制造商。它们提供了一些不同的特性,比如更快的书籍检索速度(mambaforge)或者更多地支持开源书籍(miniforge)。
解释:miniforge是一个社区驱动的miniconda替代品,与Miniconda相比,提供了更多的编译器和开发工具,适用于更复杂的环境和依赖关系。社区持续在维护和更新,所以一般用这个就足够了。
mambaforge脱胎于Miniforge,做了一些优化,以更高的效率实现了和conda 同样的功能,对conda中低效的部分进行了重写。不过从 23 年 9 月份开始,Mambaforge 已经不鼓励使用了,可以放弃。
mambaforge的官方申明:
Mambaforge(Discouraged as of September 2023)
With the release of Miniforge3-23.3.1-0, that incorporated the changes in #277, the packages and configuration of Mambaforge and Miniforge3 are now identical. The only difference between the two is the name of the installer and, subsequently, the default installation directory. Given its wide usage, there are no plans to deprecate Mambaforge. If at some point we decide to deprecate Mambaforge, it will be appropriately announced and communicated with sufficient time in advance.
As of September 2023, the new usage of Mambaforge is thus discouraged. Bug reports specific to Mambaforge will be closed as won’t fix.
意思就是,Miniforge已经把 Mambaforge 的功能给合并过来了,虽然目前Mambaforge还能用,不过不推荐,随时可能弃用,而且里面的 bug 也不会修了。
总结一下,绝大部分用户使用Miniforge 即可,常用做法是,conda 命令创建虚拟环境,conda install 安装 torch 包,剩下的包交给 pip 来搞定,兼具安全和高效。