Conda env 与 venv / pyenv / virtualenv / 等

BLi*_*ess 18 python virtualenv python-venv conda pyenv

要向这里关于 pyenv、venv、virtualenv 和 virtualenvwrapper的好问题和讨论添加一个问题,有人可以解释一下 conda 环境如何适应这个世界吗?conda 环境与其他虚拟环境选项的首选用例是什么时候?

BLi*_*ess 35

更新 2021-0602:经过研究、体验和谷歌搜索,我发现了这篇文章。它很详细,以我发现的有用的方式提出了自己的观点,并提供了我正在寻找的一切以及更多。强烈推荐。Conda 与 venv 有很大不同。

原始答案 经过研究和尝试后,我发现了以下内容,特别关注 conda 环境和 venv 之间的区别:

  • 高水平,conda 环境和 venv 之间没有太大区别。不存在很大的性能差异、设置时间差异、复制差异等。
  • 使用其中之一的决定应该主要由个人喜好和工作惯例驱动(例如,如果您的工作使用 venv 处理所有事情,那么使用 venv 而不是 conda 环境可能更有意义。)

有一些差异值得指出:

  • Conda 环境可以为 python 和 R 设置环境,因此如果您在这两个环境之间切换,conda 可能会更好,因此您只需要学习一组工具/约定。
  • Conda 环境全部存储在一个文件夹中。这有优点也有缺点:
  • 优点:您可以轻松查找您创建的所有环境。
  • 优点:您可以为多个项目重复使用一个环境(例如,我有一个“财务”环境,它适用于我所有与财务相关的项目。)
  • 缺点:您必须以不同的方式命名所有环境,并记住这些名称(或查找它们)。
  • 缺点:将该环境存储在您创建的项目文件夹中会更加痛苦。这意味着您需要记住哪个环境与哪个项目对应,并且您不能简单地 cd 进入项目文件夹,然后激活存储在该文件夹中的通用名称“env”。

对于我正在做的编程类型,我发现 conda 环境很有帮助。我可以很容易地看到 venv 是更好选择的用例。

最后,Conda 既是环境管理器,又是像 PIP 一样的包管理器。这里有有用的比较表

简而言之,如果您还没有强烈的偏好,conda 比 venv 或 pip 更强大,可以与 pip 结合使用,并且可能是更好的默认选项。也就是说,如果您已经有强烈的偏好,则意味着您可能已经知道如何做您想做的事,因此不太值得改变。