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

y.s*_*hyk 29 python pip virtualenv conda

由于conda install并且pip install在许多情况下基本上做相同的事情,那么最好的选择是什么?有没有人应该pip install只坚持的情况?对称,有没有一种情况conda install只能坚持?有没有办法通过在单个环境中同时使用 conda 和 pip install 来解决问题?

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

y.s*_*hyk 27

不要在 conda 环境中混合conda install和使用pip install。也许,决定使用condavirtualenv+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 本身是开源的,包 - 不是那么多。

  • 你一开始说不要混合它们,但实际上没有解释**为什么**不混合它们。您能澄清一下吗?谢谢! (3认同)

Ali*_*uga 9

取决于您的环境的复杂性。

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

如果您没有做任何重要的事情,您可能可以混合安装 pip 和 conda。

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