conda安装和pip安装之间的区别。函数比较等。[Python]

2019年5月26日

到目前为止,只有在conda安装不可用时,pip安装才被认为是替代安装。如果我想要的软件包不在Anaconda存储库中,请使用pip进行安装,并且在某一时刻,由于这些冲突,环境已损坏。

当我以为Jupyter Notebook无法启动时,Anaconda环境已损坏

由于这是一个很好的机会,因此我研究了点差和conda之间的区别,因此在下面将其保留为备忘录。

conda和pip之间的区别

什么是康达

简而言之,它是Anaconda / Miniconda的标准包装管理器,并且是一种环境管理系统。

Anaconda是一个提供数据科学软件包的平台(如果您要了解conda和pip之间的区别,您已经知道了)。 您可以同时安装Python和R等数据科学的编程语言以及统计分析和机器学习所需的软件包,并且可以立即构建使用Python的环境。
还有一个最小配置的Miniconda。

conda仅在由Anaconda安装程序或miniconda安装程序安装时才起作用。 即使将conda安装在python + pip的环境中,也无法像Anaconda发行版那样使用它。

什么是点子

安装纯python随附的标准python软件包安装程序和软件包管理系统。

它从Python程序包索引(PyPI)(用于Python编程语言的存储库)下载并安装程序包。

每个功能的差异

一张简单的表格总结了conda和pip的作用。

机能康达点子
软件包安装和管理
切换Python版本不可能(pipenv,pyenv替代)
虚拟环境管理不可能(用pipenv,virtualenv,venv代替)

由于conda也是一个环境管理系统,因此您可以构建一个虚拟环境,将Python版本更改为3.7,或切换到2.7。

使用pip,您将安装和使用pyenv(版本控制)和venv(虚拟环境管理)等软件包。

最近,pipenv出现了,它似乎具有几乎可以替代conda的功能。

conda安装和pip安装

conda install和pip install的命令相似,但是安装软件包的机制似乎完全不同。 在anaconda.com网站上有一个易于理解的比较表,因此,我将其引用(日语和经过修改,以使我更容易理解)。

康达安装点安装
包装格式二进制的轮或源
编译不必要需要
包装类型其他语言也是可能的仅限python
虚拟环境管理,版本管理可能不可能(用virtualenv,venv代替)
依赖性检查なし
软件包下载源anaconda存储库,anaconda云聚乳酸

・ Conda支持python以外的语言

Anaconda / Miniconda是一个跨平台,允许您安装多种编程语言,例如Python,R,Ruby,Java,JavaScript,C / C ++,FORTRAN及其软件包。

conda可以在其跨平台上安装以各种语言编写的软件包。

pip只能安装在Python软件包上。

-是否需要编译

可以使用conda命令安装的1000多个软件包存储在名为Anaconda cloud的专用存储库中。

由于这些软件包是已编译的二进制文件,因此无需编译器就可以下载和安装它们。

通过pip安装的文件包含源文件,您需要在客户端上进行编译。

这可能会导致问题,具体取决于环境,这似乎是在构建环境时经常绊倒的原因之一。也许。它可能需要外部依赖。

・是否有依赖性检查

似乎pip不能确保每次安装软件包时都同时满足所有依赖性。在这种情况下,如果安装的软件包具有它们依赖的软件包的不同版本,则将发生冲突。

conda通过提供一个SAT求解器来支持这一点,该求解器收集所有包的元数据以了解依赖关系。在安装时,快速了解软件包之间的复杂依赖性,并执行适当的更新和安装。

・执行速度的差异

还有信息表明,在conda中安装numpy的矩阵运算速度更快。它取决于计算类型,但似乎相差不止一倍。

BLAS(基本线性代数子程序)有多种实现方法,它们可以实际处理NumPy调用的矩阵运算,其中之一是Intel开发的Intel MKL(数学内核库)。实际上,Anaconda安装的从NumPy调用的BLAS是MKL,但是当NumPy安装有pip时,通常会使用称为OpenBLAS的BLAS,因此这里的性能可能会有所不同。

Anaconda的NumPy和pip-Orizuru之间的NumPy速度差异

BLAS是一个执行基本矩阵和矢量计算的库。 numpy库中有更多活蚂蚁,我不确定...

接下来的页面详细概述了“计算处理速度实际取决于BLAS的不同而实际变化多少”和“如何确定您的环境中使用哪种BLAS”。如果您喜欢,请参考。

看来,计算速度会根据用于Numpy的BLAS而变化[Python]

那就是conda和pip之间的区别。

参考


了解Conda和Pip
https://conda.io/en/latest/
比较Anaconda的NumPy和PyPI的NumPy的速度
出于性能原因,停止使用pip安装Tensorflow!