在同一环境中使用 conda 和 pip install 是一个坏主意吗?

问题描述 投票:0回答:2

由于

conda install
pip install
在许多情况下本质上做同样的事情,那么最好的选择是什么?在某些情况下,有人应该只坚持
pip install
吗?对称的,有没有一种情况应该只坚持
conda install
?有没有办法在单一环境中同时使用 conda 和 pip install 来搬起石头砸自己的脚?

如果两种方法本质上是相同的并且不互相矛盾,那么就没有理由只坚持其中一种而不坚持另一种。


另请参阅: 安装 Python 包时偏爱 pip 与 conda 的具体原因

python pip virtualenv conda
2个回答
61
投票

请勿在 conda 环境中混合

conda install
pip install
。也许,决定一劳永逸地使用
conda
virtualenv+pip
。以下是您如何决定哪一个最适合您的方法:

  • Conda 在 conda 环境中安装各种(不仅是 python)conda 采用的软件包。如果您喜欢环境,它会让您的环境变得正确。
  • Pip 在 Python 环境中安装 python 包(virtualenv 就是其中之一)。它可以正确安装你的 python 软件包。

使用 conda 的安全方法: 不要急于获取最新的东西,坚持使用可用的软件包,你就会没事的。

使用 pip+virtualenv 的安全方法:如果您看到依赖项问题或希望在打包后删除并清理 - 不要这样做。只要烧毁房子,放弃旧的环境并创建一个新的环境即可。一个命令行,2-5 分钟后,一切都会恢复正常。

Pip 是两者中安装 Python 包最好的工具。由于 pip 包通常首先出现,然后才被 conda 采用(由 conda 工作人员或贡献者)。有可能,在更新或安装最新版本的 Python 后,某些软件包只能通过 pip 获得。并且最新版本的软件包只能在 pip 中提供。将 pip 和 conda 包混合在一起可能是一场噩梦(至少如果你想利用 conda 的优势)。

Conda 在管理依赖项和复制环境方面是最好的。卸载软件包时,conda 可以自行正确清理,并更好地控制冲突的依赖版本。此外,conda 可以导出环境配置,如果当前行星正确并且新机器没有太大不同,则可以在其他地方复制该环境。此外,conda 可以对环境有更大的控制,例如可以在其中安装不同版本的 Python(virtualenv - 仅系统中可用的 Python)。当您无法自由选择使用什么时,您始终可以创建 conda 包

一些相关事实:

  • Conda 需要更多空间和时间来设置
  • 如果您没有系统管理员权限,Conda 可能会更好
  • 当你没有系统Python时Conda会有所帮助
  • virtualenv+pip 将使您免于了解大量此类细节

一些过时的观念:

  • Conda 在当时(2012 年左右)对于新手开发人员来说曾经更好。不再存在可用性差距
  • Conda 与 Continuum Analytics 的联系太多了。现在 Conda 本身是开源的,但软件包 - 不是那么多。

13
投票

实际上取决于您环境的复杂程度。

对一些简单的包使用 pip 不会产生任何问题。 使用更多的 pip 安装会引发一个问题“为什么不使用 pip venv?”。

如果您不做任何重大事情,您也许可以混合使用 pip 和 conda 安装。

这里有一个广泛的解释为什么混合它们可能是一个坏主意:在 Conda 环境中使用 Pip

© www.soinside.com 2019 - 2024. All rights reserved.