python - Conda env 与 venv / pyenv / virtualenv / 等
问题描述
要在 pyenv、 venv 、virtualenv 和 virtualenvwrapper 上的重要问题和讨论中添加一个问题,有人可以解释一下 conda 环境如何适应这个世界吗?conda 环境与其他虚拟环境选项的首选用例是什么时候?
解决方案
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 结合使用,并且可能是更好的默认选项。也就是说,如果你已经有强烈的偏好,这意味着你可能已经知道如何做你想做的事,所以改变它不太值得。
推荐阅读
- swift - 如何在 swift4 中为这个 json 数据创建一个结构?
- caching - 为什么 CloudFront GZIP 不压缩我的 HTML/JSP 页面
- angular - 无法使用电子打包器创建 Windows 应用程序包
- python - Jupyter 中 Numpy 函数的文档
- visual-studio-2017 - 如何更改某个变更集的注释颜色
- asp.net - 如何基于在 Asp.net mvc 和 Knockoutjs 中单击 Add new 来重复绑定控件
- ios - iOS-如何在限制范围内绘画
- python - 在 tkinter 中使用线程
- excel - 将 2 行单元格与电子表格中同一列中的行下单元格进行比较时,根据重复值删除行
- c# - 如何修改 ChartingToolkit LineChart 的 X 轴