管理依赖包

1.conda和pip

两者都是管理python依赖包的包管理器,pip是python官方提供的。

conda(2012年)pip(2008年)。

两者的区别

因为python的语法相对简单,所以在科学和数学方面是主流语言。但是其性能不出众(比如计算速度慢等等),于是出现了用其他语言(C语言或者Fortran)写的数学库,通过封装实现python跨语言调用。由此既保证了简单的语法,还保证了计算速度。

pip在这种跨语言的依赖的支持方面(兼容性)做的十分糟糕,通常需要系统已经安装了这些依赖,或者通过wheel格式(预编译的二进制包)来提供。于是有了conda。

C语言是跨平台相关的,不同的操作系统对应不同的二进制版本。conda的软件仓库会为每一个支持的系统提前处理好编译的二进制版本等等,所以使用conda更方便。

2.Anaconda体系:

Anaconda:

常说的Anaconda实际是这家公司的发行版,完整名称为Anaconda Distribution。不仅包含了conda这个核心组件,还附带了常见(科学领域最流行)的软件包,对新手友好。

Miniconda:

只有最核心的conda和python,适合喜欢更精简或者自定义需求的使用者。

Anaconda.ORG:

一个软件库平台,官方的软件库也在这里面,在该平台上仓库被称为channel,官方的是defaults channel。因为维护和兼容性问题太多,工作量大,官方能力有限。 而这个平台实现了用户可以自己上传包,自己维护,自己负责兼容性问题,所以有一个开源社区在该平台上创建了conda-forge的channel,该channel兼容性和稳定性近年来大幅度提升,软件包数量多且更新快。

Miniforge:

conda默认的channel是defaults channel,现在该channel有商业收费问题。开源社区的人员通过修改默认channel创建了Miniforge,其默认channel为conda-forge。

Mamba:

加强版的conda。现代项目的依赖越来越复杂,通过C++对conda最慢的部分(比如依赖求解器)进行优化,并添加了多线程下载功能,由此诞生了Mamba。现在默认包含在Miniforge安装包里面。Mamba不仅是速度优化,还改进了依赖解析算法。它完全兼容conda的命令语法,可以直接替换使用,比如:

conda install numpy → mamba install numpy

conda update --all-> mamba update --all

相关推荐
环黄金线HHJX.8 小时前
【从0到1】
开发语言·人工智能·算法·交互
鬓戈8 小时前
AI coding编程体验之二
人工智能
Westward-sun.8 小时前
OpenCV图像拼接实战:从SIFT特征匹配到透视变换全景融合
人工智能·opencv·计算机视觉
hanweixiao8 小时前
AI 应用评测平台
人工智能
郝学胜-神的一滴8 小时前
自动微分实战:梯度下降的迭代实现与梯度清零核心解析
人工智能·pytorch·python·深度学习·算法·机器学习
HyperAI超神经8 小时前
【TVM教程】理解 Relax 抽象层
人工智能·深度学习·学习·机器学习·gpu·tvm·vllm
白小筠8 小时前
自然语言处理-文本预处理
人工智能·自然语言处理·easyui
叶帆8 小时前
【YFIOs】面向AI时代的工业物联基座-YFIOs 2.0
人工智能·物联网·yfios
丁当粑粑8 小时前
LLM调参必知:max_tokens + stop参数详解
人工智能
摸鱼仙人~8 小时前
AWQ:激活感知权重量化——让大语言模型更轻更快
人工智能·语言模型·自然语言处理