首页 > 解决方案 > Conda env 与 venv / pyenv / virtualenv / 等

问题描述

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

标签: pythonvirtualenvcondapython-venvpyenv

解决方案


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 结合使用,并且可能是更好的默认选项。也就是说,如果你已经有强烈的偏好,这意味着你可能已经知道如何做你想做的事,所以改变它不太值得。


推荐阅读