点数和孔达有什么区别?

2022-09-05 01:10:07

我知道是python包的包管理器。但是,我在IPython的网站上看到安装用于安装IPython。pipconda

我可以使用来安装IPython吗?当我已经拥有时,为什么我应该使用另一个python包管理器?pipcondapip

和 有什么区别?pipconda


答案 1

引用自Conda博客

在Python世界中工作了这么长时间,我们都知道pip,easy_install和virtualenv,但这些工具并没有满足我们所有的特定要求。主要问题是他们专注于Python,忽略了非Python库依赖项,例如HDF5,MKL,LLVM等,这些依赖项在其源代码中没有 setup.py,也没有将文件安装到Python的站点包目录中。

因此,Conda是一个打包工具和安装程序,旨在做更多的事情。处理Python包以及Python包本身之外的库依赖项。Conda还创建了一个虚拟环境,就像这样。pipvirtualenv

因此,Conda应该与Buildout进行比较,Buildout是另一种工具,可以让你处理Python和非Python安装任务。

由于Conda引入了一种新的包装格式,因此您不能互换使用和Conda; 无法安装 Conda 包格式。您可以并排使用这两个工具(通过 安装 ),但它们也不会互操作。pippippipconda install pip

自从写了这个答案,Anaconda在Deconda和Pip上发布了一个新的页面,这也呼应了这一点:

这凸显了conda和pip之间的关键区别。Pip安装Python软件包,而conda安装软件包,其中可能包含用任何语言编写的软件。例如,在使用pip之前,必须通过系统包管理器或下载并运行安装程序来安装Python解释器。另一方面,Conda可以直接安装Python包以及Python解释器。

以及进一步

有时需要一个软件包,该软件包不作为conda软件包提供,但在PyPI上可用,并且可以使用pip安装。在这些情况下,尝试同时使用conda和pip是有意义的。


答案 2

免责声明:这个答案描述了十年前的状态,当时pip不支持二进制包。Conda是专门为更好地支持构建和分发二进制包而创建的,特别是具有C扩展的数据科学库。作为参考,pip只获得了对带有轮子的便携式二进制包(2013年的pip 1.4)和manerlinux1规范(2016年3月的pip 8.1)的广泛支持。有关更多历史记录,请参阅最近的答案

以下是一个简短的概述:

果仁

  • 仅限 Python 包。
  • 从源代码编译所有内容。编辑:pip现在安装二进制轮子,如果它们可用。
  • 受到核心Python社区的祝福(即Python 3.4 +包含自动引导pip的代码)。

康达

  • Python 不可知论者。现有包的主要焦点是针对Python的,事实上,Conda本身是用Python编写的,但你也可以为C库或R包或任何东西提供Conda包。
  • 安装二进制文件。有一个名为“从源代码构建软件包”的工具,但其本身会从已经构建的 Conda 软件包中安装内容。conda buildconda install
  • 外部。conda 是一个环境和包管理器。它包含在Continuum Analytics(现称为Anaconda,Inc.)提供的Anaconda Python发行版中。

conda是Anaconda以外的独立开发和支持。Conda-forge基础设施完全独立于Anaconda, Inc.,Anaconda, Inc.是conda软件包开源社区中庞大的维护者团队之一。

conda是一个用Python编写的环境管理器,与语言无关。conda环境管理功能涵盖了venv,virtualenv,pipenv,pyenv和其他Python特定的包管理器提供的功能。您可以通过pip安装在现有的Python安装中使用conda(尽管除非您有充分的理由使用现有安装,否则不建议这样做)。截至2022年,conda和pip还没有完全了解虚拟环境中的彼此包管理活动,它们不能与Python包管理互操作。

在这两种情况下:

  • 用 Python 编写
  • 开源(conda是BSD,pip是MIT)

conda的前两个要点确实是使它在许多包装中优于pip的原因。由于pip是从源代码安装的,因此如果您无法编译源代码,那么使用它进行安装可能会很痛苦(在Windows上尤其如此,但如果软件包具有一些困难的C或FORTRAN库依赖项,则在Linux上甚至可能如此)。conda从二进制安装,这意味着有人(例如Continuum)已经完成了编译软件包的艰苦工作,因此安装很容易。

如果您有兴趣构建自己的包,也存在一些差异。例如,pip建立在setuptools之上,而conda使用自己的格式,这有一些优点(比如静态的,再次,Python不可知论者)。


推荐