在同一环境中使用 conda 和 pip install 是个坏主意吗?
Is that a bad idea to use conda and pip install on the same environment?
由于 conda install
和 pip install
在很多情况下做的事情本质上是一样的,什么是最好的选择?有没有人应该只坚持 pip install
的情况?对称的,是否存在只应坚持 conda install
的情况?有没有办法在单一环境中同时使用 conda 和 pip install 来打击一个人的脚?
如果这两种方法在本质上是相同的并且不相互矛盾,那么就没有理由只坚持其中一种而不坚持另一种。
确实取决于您的环境的复杂程度。
对一些简单的包使用 pip 应该不会产生任何问题。
使用更多的 pip 安装会引发“为什么不使用 pip venv 呢?”的问题。
如果您没有做任何重要的事情,您可以混合安装 pip 和 conda。
这里有一个详尽的解释为什么混合它们可能不是一个好主意:Using Pip in a Conda Environment。
不要在 conda 环境中混用 conda install
和 pip install
。也许,决定一劳永逸地使用 conda
或 virtualenv+pip
。以下是您如何决定哪一个最适合您:
- Conda 在 conda 环境中安装各种(不仅是 python)conda-adopted 包。如果您喜欢环境,它会让您的环境变得正确。
- Pip 在 Python 环境中安装 python 包(virtualenv 是其中之一)。它使您的 python 软件包安装正确。
使用 conda 的安全方法: 不要急于使用最新的东西并坚持使用可用的软件包,你会没事的。
使用 pip+virtualenv 的安全方法: 如果您发现依赖性问题或希望在打包后删除并清理 - 不要这样做。烧掉房子,放弃你的旧环境,创造一个新环境。一个命令行,2-5 分钟后,事情又会变得整洁。
Pip 是两者中最好的 安装Python 软件包的工具。由于 pip 包通常先出现,然后才被 conda 采用(由 conda 工作人员或贡献者)。有可能,在更新或安装 Python 的最新版本后,某些软件包只能通过 pip 获得。最新版本的包只能在 pip 中使用。并将 pip 和 conda 包混合在一起 can be a nightmare(至少如果你想利用 conda 的优势)。
Conda 在管理依赖项和复制环境方面是最好的。卸载软件包时,conda 可以自行清理并更好地控制冲突的依赖版本。此外,conda 可以导出环境配置,如果目前行星合适并且新机器没有太大差异,则可以在其他地方复制该环境。此外,conda 可以更好地控制环境,例如,可以在其中安装不同版本的 Python(virtualenv - 只有 Python 在系统中可用)。当您无法自由选择使用什么时,您总是可以 create a conda package。
一些相关事实:
- Conda 需要更多 space 和时间来设置
- 如果您没有系统管理员权限,Conda 可能会更好
- 当您没有系统时,Conda 会提供帮助Python
- virtualenv+pip 会让你摆脱对这些细节的了解
一些过时的观念:
- Conda 在过去(2012 年左右)曾经更适合新手开发人员。不再存在可用性差距
- Conda 与 Continuum Analytics 的链接过多。现在 Conda 本身是开源的,包 - 没那么多。
由于 conda install
和 pip install
在很多情况下做的事情本质上是一样的,什么是最好的选择?有没有人应该只坚持 pip install
的情况?对称的,是否存在只应坚持 conda install
的情况?有没有办法在单一环境中同时使用 conda 和 pip install 来打击一个人的脚?
如果这两种方法在本质上是相同的并且不相互矛盾,那么就没有理由只坚持其中一种而不坚持另一种。
确实取决于您的环境的复杂程度。
对一些简单的包使用 pip 应该不会产生任何问题。 使用更多的 pip 安装会引发“为什么不使用 pip venv 呢?”的问题。
如果您没有做任何重要的事情,您可以混合安装 pip 和 conda。
这里有一个详尽的解释为什么混合它们可能不是一个好主意:Using Pip in a Conda Environment。
不要在 conda 环境中混用 conda install
和 pip install
。也许,决定一劳永逸地使用 conda
或 virtualenv+pip
。以下是您如何决定哪一个最适合您:
- Conda 在 conda 环境中安装各种(不仅是 python)conda-adopted 包。如果您喜欢环境,它会让您的环境变得正确。
- Pip 在 Python 环境中安装 python 包(virtualenv 是其中之一)。它使您的 python 软件包安装正确。
使用 conda 的安全方法: 不要急于使用最新的东西并坚持使用可用的软件包,你会没事的。
使用 pip+virtualenv 的安全方法: 如果您发现依赖性问题或希望在打包后删除并清理 - 不要这样做。烧掉房子,放弃你的旧环境,创造一个新环境。一个命令行,2-5 分钟后,事情又会变得整洁。
Pip 是两者中最好的 安装Python 软件包的工具。由于 pip 包通常先出现,然后才被 conda 采用(由 conda 工作人员或贡献者)。有可能,在更新或安装 Python 的最新版本后,某些软件包只能通过 pip 获得。最新版本的包只能在 pip 中使用。并将 pip 和 conda 包混合在一起 can be a nightmare(至少如果你想利用 conda 的优势)。
Conda 在管理依赖项和复制环境方面是最好的。卸载软件包时,conda 可以自行清理并更好地控制冲突的依赖版本。此外,conda 可以导出环境配置,如果目前行星合适并且新机器没有太大差异,则可以在其他地方复制该环境。此外,conda 可以更好地控制环境,例如,可以在其中安装不同版本的 Python(virtualenv - 只有 Python 在系统中可用)。当您无法自由选择使用什么时,您总是可以 create a conda package。
一些相关事实:
- Conda 需要更多 space 和时间来设置
- 如果您没有系统管理员权限,Conda 可能会更好
- 当您没有系统时,Conda 会提供帮助Python
- virtualenv+pip 会让你摆脱对这些细节的了解
一些过时的观念:
- Conda 在过去(2012 年左右)曾经更适合新手开发人员。不再存在可用性差距
- Conda 与 Continuum Analytics 的链接过多。现在 Conda 本身是开源的,包 - 没那么多。