python Conda环境与venv / pyenv /虚拟环境等

z4bn682m  于 2023-03-06  发布在  Python
关注(0)|答案(2)|浏览(526)

here关于pyenv、venv、virtualenv和virtualenvwrapper的精彩问答中,我想补充一个问题,有人能解释一下conda环境如何适应这个世界吗?什么时候conda环境比其他虚拟环境选项更受欢迎?

sigwle7e

sigwle7e1#

**更新2021-0602:**经过研究,体验和谷歌搜索更多,我发现this article。它是详细的,固执己见,在什么我发现了一个有益的方式,并提供了一切我正在寻找和更多。强烈推荐。康达是相当不同的venv。
原始答案经过研究和实践,以下是我的发现,特别关注conda环境和venv之间的区别:

  • 总的来说,conda环境和venv之间没有太大的区别,性能、安装时间、复制等方面都没有太大的区别。
  • 使用其中一个的决定应该主要由个人喜好和工作中的惯例来决定(例如,如果你的工作使用venv来处理所有的事情,那么使用venv而不是conda环境可能是有意义的。)

有一些差异值得指出:

  • Conda环境可以为python和R设置环境,所以如果你在两个conda之间切换可能更好,所以你只需要学习一套工具/约定。
  • 所有的Conda环境都存储在一个文件夹中,这有优点也有缺点:
  • 优点:你可以很容易地查找你创建的所有环境。
  • 优点:你可以为多个项目重用一个环境(例如,我有一个“财务”环境,它可以很好地为我所有与财务相关的项目工作。)
  • 缺点:你必须给你所有的环境起不同的名字,并且记住这些名字(或者查找它们)。
  • 缺点:将环境保存在你创建的项目文件夹中会更痛苦,这意味着你需要记住哪个环境对应哪个项目,你不能简单地cd到项目文件夹,然后激活保存在该文件夹中的通用名为“env”的文件。

对于我正在做的编程类型,我发现conda环境很有帮助,我可以很容易地看到venv是更好选择的用例。
最后,康达既是一个环境管理器,也是一个像PIP一样的包管理器。
简而言之,如果你还没有强烈的偏好,conda比venv或pip更健壮,可以与pip结合,可能是更好的默认选项;也就是说,如果你已经有强烈的偏好,这意味着你可能已经知道如何做你想做的事情,所以不太值得改变。

xqk2d5yq

xqk2d5yq2#

你也可以使用(迷你)conda来安装不同的python版本(到不同的环境中),还可以安装node.js,ruby,甚至postgresql等。它比venv有更多的二进制编译的包(嗯,所谓的wheels),你绝对可以用它来代替pyenv和nvm和rvm等。
我也在Windows上广泛地试用了它,不得不承认它比我想象的要好。如果有什么不成功,你可以随时使用WSL 2或者直接切换到MacOS/Linux。

相关问题