我使用 miniconda 作为我的默认 python 安装。关于何时使用 conda 与 pip 安装某些东西,当前(2019 年)的智慧是什么?
我通常的行为是使用 pip 安装所有内容,并且仅在无法通过 pip 获得软件包或 pip 版本无法正常工作时才使用 conda。
总是喜欢 conda install
吗?混合使用这两个安装程序是否存在问题?我应该考虑哪些因素?
客观性: 这不是一个基于意见的问题!我的问题是,当我可以选择使用 pip
或 conda
安装 python 包时,我该如何做出明智的决定?不是“告诉我哪个更好,而是 ” 为什么 我要用一个而不是另一个,来回摆动会导致问题/效率低下吗?
原文由 Dustin Michels 发布,翻译遵循 CC BY-SA 4.0 许可协议
我发现我首先使用 conda 只是因为它安装了二进制文件,而不是如果包不存在则尝试 pip。例如,在 conda 中安装 psycopg2 比在 pip 中安装要容易得多。
https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/
Pip 代表 Pip Installs Packages,是 Python 官方认可的包管理器,最常用于安装在 Python Package Index (PyPI) 上发布的包。 pip 和 PyPI 均由 Python 打包管理局 (PyPA) 管理和支持。
简而言之,pip 是 Python 包的通用管理器; conda 是一种与语言无关的跨平台环境管理器。对于用户来说,最显着的区别可能是:pip 在任何环境中安装 python 包; conda 在 conda 环境中安装任何包。如果您所做的只是在隔离环境中安装 Python 包,那么 conda 和 pip+virtualenv 大部分是可以互换的,只是在依赖处理和包可用性方面存在一些差异。我所说的隔离环境是指 conda-env 或 virtualenv,您可以在其中安装包而无需修改系统 Python 安装。
如果我们只关注 Python 包的安装,那么 conda 和 pip 服务于不同的受众和不同的目的。例如,如果您想在现有系统 Python 安装中管理 Python 包,conda 无法帮助您:按照设计,它只能在 conda 环境中安装包。例如,如果您想使用许多依赖外部依赖项的 Python 包(NumPy、SciPy 和 Matplotlib 是常见示例),同时以有意义的方式跟踪这些依赖项,pip 无法帮助您:从设计上讲,它管理 Python 包并且只管理 Python 包。
Conda 和 pip 不是竞争对手,而是专注于不同用户群体和使用模式的工具。