我知道 pip
是python包的包管理器。但是,我在 IPython 的网站上看到安装使用 conda
来安装 IPython。
我可以使用 pip
来安装IPython吗?当我已经拥有 pip
时,为什么还要使用 conda
作为另一个 python 包管理器?
pip
和 conda
有什么区别?
原文由 lazywei 发布,翻译遵循 CC BY-SA 4.0 许可协议
我知道 pip
是python包的包管理器。但是,我在 IPython 的网站上看到安装使用 conda
来安装 IPython。
我可以使用 pip
来安装IPython吗?当我已经拥有 pip
时,为什么还要使用 conda
作为另一个 python 包管理器?
pip
和 conda
有什么区别?
原文由 lazywei 发布,翻译遵循 CC BY-SA 4.0 许可协议
免责声明:这个答案描述的是十年前的状态,那时 pip 不支持二进制包。 Conda 是专门为更好地支持构建和分发二进制包而创建的,特别是具有 C 扩展的数据科学库。作为参考,pip 仅获得了对带轮子的便携式二进制包(2013 年的 pip 1.4)和 manylinux1 规范(2016 年 3 月的 pip 8.1)的广泛支持。有关更多历史记录,请参阅 最近的答案。
这是一个简短的摘要:
conda build
的工具从源代码构建包,但是 conda install
本身从已经构建的 Conda 包中安装东西。conda 是一个用 Python 编写的环境管理器,与语言无关。 conda 环境管理功能涵盖了 venv、virtualenv、pipenv、pyenv 和其他特定于 Python 的包管理器提供的功能。您可以通过 pip 安装在现有 Python 安装中使用 conda(尽管不推荐这样做,除非您有充分的理由使用现有安装)。截至 2022 年,conda 和 pip 并未完全了解虚拟环境中的彼此包管理活动,它们也无法与 Python 包管理互操作。
在这两种情况下:
conda 的前两个要点确实使它在许多包中优于 pip。由于 pip 从源代码安装,如果您无法编译源代码,用它安装东西可能会很痛苦(这在 Windows 上尤其如此,但如果软件包有一些困难的 C 或 FORTRAN 库,在 Linux 上什至是这样依赖)。 conda 从二进制安装,这意味着有人(例如,Continuum)已经完成了编译包的艰苦工作,因此安装很容易。
如果您有兴趣构建自己的包,也有一些差异。例如,pip 建立在 setuptools 之上,而 conda 使用自己的格式,这有一些优势(比如静态的,而且与 Python 无关)。
原文由 asmeurer 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
引用 康达博客:
因此,Conda 是一个打包工具和安装程序,旨在做的不仅仅是
pip
所做的;处理 Python 包 之外 的库依赖关系以及 Python 包本身。 Conda 还创建了一个虚拟环境,就像virtualenv
一样。因此,或许应该将 Conda 与 Buildout 进行比较,Buildout 是另一种可以同时处理 Python 和非 Python 安装任务的工具。
因为 Conda 引入了一种新的打包格式,所以不能将
pip
和 Conda 互换使用;pip
无法安装Conda包格式。您可以并排使用这两个工具(通过安装pip
和conda install pip
),但它们也不能互操作。自从写下这个答案后,Anaconda 发布了一个 关于 理解 Conda 和 Pip 的新页面,这也与此相呼应:
并进一步