pip install和conda install之间的区别

pip install和conda install之间的区别

来源于官方网站的翻译
**Conda和pip通常被认为是几乎相同的。**尽管这两个工具的某些功能重叠,但是它们是经过设计的,应用于不同的目的。Pip是Python包装管理局推荐的工具,可用于从Python软件包索引PyPI安装软件包。Pip安装打包为wheel或source分发包的Python软件。后者可能要求系统在调用pip成功之前已安装兼容的编译器以及可能的库。
Conda是一个跨平台的软件包和环境管理器,可从Anaconda存储库以及Anaconda Cloud安装和管理conda软件包。Conda软件包是二进制文件。从来不需要安装任何编译器。另外,conda软件包不限于Python软件。它们可能还包含C或C ++库,R软件包或任何其他软件。
这凸显了conda和pip之间的关键区别。Pip安装Python软件包,而conda安装那些其中可能包含以任何语言编写的软件的软件包。例如,在使用pip之前,必须通过系统软件包管理器或下载并运行安装程序来安装Python解释器。另一方面,Conda可以直接安装Python软件包以及Python解释器。
两种工具之间的另一个主要区别是conda能够创建隔离的环境,该环境可以包含不同版本的Python和/或其中安装的软件包。当使用数据科学工具时,这可能非常有用,因为不同的工具可能包含相互冲突的要求,这可能会阻止将它们全部安装到单个环境中。Pip没有对环境的内置支持,而是依赖于诸如virtualenv或venv的其他工具来创建隔离的环境。Pipenv,poetry和hatch之类的工具可对pip和virtualenv进行包装,以提供用于这些环境的统一方法。
pip和conda在满足环境中的依赖关系方面也有所不同。在安装软件包时,pip在递归的串行循环中安装依赖项。不会努力确保同时满足所有软件包的依赖关系。如果按顺序较早安装的软件包相对于按顺序较晚安装的软件包具有不兼容的依赖项版本,则可能导致环境以微妙的方式破坏。相反,conda使用可满足性(SAT)求解器来验证是否满足环境中安装的所有软件包的所有要求。该检查可能需要花费更多时间,但有助于防止损坏的环境的创建。只要有关依赖项的软件包元数据正确,conda就会按预期产生工作环境。
鉴于conda和pip之间的相似之处,有人尝试将这些工具组合在一起以创建数据科学环境就不足为奇了。将pip与conda结合的主要原因是,一个或多个软件包只能通过pip安装。Anaconda存储库中提供了1,500多个软件包,其中包括最受欢迎的数据科学,机器学习和AI框架。可以使用conda来安装这些工具,以及可在Anaconda云上通过渠道使用的数千种其他软件包,包括conda-forge和bioconda。尽管有大量的软件包,但与PyPI上可用的150,000多个软件包相比,它仍然很小。有时需要一个软件包,该软件包不是conda软件包,但在PyPI上可用,可以与pip一起安装。在这些情况下,尝试同时使用conda和pip是有意义的。
下面是一个总结:
在这里插入图片描述