由于
conda install
和 pip install
在许多情况下本质上做同样的事情,那么最好的选择是什么?在某些情况下,有人应该只坚持 pip install
吗?对称的,有没有一种情况应该只坚持conda install
?有没有办法在单一环境中同时使用 conda 和 pip install 来搬起石头砸自己的脚?
如果两种方法本质上是相同的并且不互相矛盾,那么就没有理由只坚持其中一种而不坚持另一种。
请勿在 conda 环境中混合
conda install
和 pip install
。也许,决定一劳永逸地使用 conda
或 virtualenv+pip
。以下是您如何决定哪一个最适合您的方法:
使用 conda 的安全方法: 不要急于获取最新的东西,坚持使用可用的软件包,你就会没事的。
使用 pip+virtualenv 的安全方法:如果您看到依赖项问题或希望在打包后删除并清理 - 不要这样做。只要烧毁房子,放弃旧的环境并创建一个新的环境即可。一个命令行,2-5 分钟后,一切都会恢复正常。
Pip 是两者中安装 Python 包最好的工具。由于 pip 包通常首先出现,然后才被 conda 采用(由 conda 工作人员或贡献者)。有可能,在更新或安装最新版本的 Python 后,某些软件包只能通过 pip 获得。并且最新版本的软件包只能在 pip 中提供。将 pip 和 conda 包混合在一起可能是一场噩梦(至少如果你想利用 conda 的优势)。
Conda 在管理依赖项和复制环境方面是最好的。卸载软件包时,conda 可以自行正确清理,并更好地控制冲突的依赖版本。此外,conda 可以导出环境配置,如果当前行星正确并且新机器没有太大不同,则可以在其他地方复制该环境。此外,conda 可以对环境有更大的控制,例如可以在其中安装不同版本的 Python(virtualenv - 仅系统中可用的 Python)。当您无法自由选择使用什么时,您始终可以创建 conda 包。
一些相关事实:
一些过时的观念:
实际上取决于您环境的复杂程度。
对一些简单的包使用 pip 不会产生任何问题。 使用更多的 pip 安装会引发一个问题“为什么不使用 pip venv?”。
如果您不做任何重大事情,您也许可以混合使用 pip 和 conda 安装。
这里有一个广泛的解释为什么混合它们可能是一个坏主意:在 Conda 环境中使用 Pip 。