pip是Python包管理工具,可用于从Python软件包索引安装软件包。Pip通过编译源码中的所有内容进行安装的方式就是源码安装
Conda是一个跨平台的软件包(不限于Python)的工具而且还是环境管理器,可用于从Anaconda repository以及Anaconda Cloud安装和管理conda软件包。 Conda软件包是二进制文件,从不需要安装任何编译器。
本质区别在于:
conda可以让你同时安装处理有关Python任务和无关的任务,可以允许你在conda环境中安装任何语言的语言包
pip可以在任何环境中安装Python的包。
Conda能够创建隔离的环境,该环境可以包含不同版本的Python以及其他软件包。
Pip没有对环境的内置支持,而是依赖于诸如virtualenv或venv的其他工具来创建隔离的环境。
pip和conda在满足环境中的依赖关系方面也有所不同。
在安装软件包时,pip在递归的串行循环中安装依赖项,不会确保同时满足所有软件包的依赖关系。如果按顺序较早安装的软件包相对于按顺序较晚安装的软件包具有不兼容的依赖项版本,则可能导致环境以微妙的方式被破坏掉。
相反,conda使用SAT(satisfiability)solver来验证是否满足环境中安装的所有软件包的所有要求。此检查可能需要花费更多时间,但有助于防止环境被破坏。只要有关依赖项的软件包元数据正确,conda就会按预期产生可用的环境。
参考阅读:
Pip和Conda是Python生态系统中的两种包管理工具。Pip主要负责Python软件包的源码安装,而Conda不仅管理Python包,还支持其他语言的软件包,并提供环境管理功能。Conda的包是二进制形式,能避免编译过程。关键区别在于Conda具备环境隔离和依赖关系的智能解决能力,通过SAT求解器确保环境稳定性,而pip安装依赖项时可能存在顺序问题导致环境破坏。因此,对于环境管理和多语言支持,Conda更胜一筹,而pip更适合纯Python环境的包管理。
811

被折叠的 条评论
为什么被折叠?



