我最近在安装SciPy时遇到问题,特别是在我正在开发的Heroku应用程序上,发现了Conda。
使用Conda,您可以创建环境,非常类似于虚拟环境。我的问题是:
>
Conda取代了Virtualenv。在我看来更好。它不仅限于Python,也可以用于其他语言。根据我的经验,它提供了更流畅的体验,尤其是对于科学包。我第一次在Mac上正确安装MayaVi是使用conda
。
您仍然可以使用pip
。实际上,conda
在每个新环境中安装pip
。它知道pip安装的软件包。
例如:
conda list
列出当前环境中已安装的所有包。Conda安装的包显示如下:
sphinx_rtd_theme 0.1.7 py35_0 defaults
通过pip安装的具有
wxpython-common 3.0.0.0 <pip>
简而言之,你只需要康达。
>
Conda有效地将pip和Virtualenv的功能结合在一个包中,因此如果您使用conda,则不需要Virtualenv。
您可能会惊讶于conda支持多少包。如果还不够,可以在conda下使用pip。
以下是一个链接,指向比较conda、pip和virtualenv的conda页面:
https://docs.conda.io/projects/conda/en/latest/commands.html#conda-vs pip vs virtualenv命令。
我同时使用和(截至2020年1月),它们有一些表面上的差异,对我来说有不同的用法。默认情况下,Conda更喜欢在中心位置为您管理环境列表,而virtualenv在当前目录中创建文件夹。如果您正在进行机器学习,并且您在许多项目中使用了两个广泛的环境,并且希望从任何地方进入这些环境,则前者(集中式)是有意义的。如果您正在做一些一次性的小项目,这些项目具有完全不同的lib需求集,而这些需求集实际上更属于项目本身,那么后者(每个项目文件夹)是有意义的。
Conda创建的空环境大约为122MB,而VirtualEnvironment大约为12MB,因此,这也是您不希望将Conda环境分散到任何地方的另一个原因。
最后,Conda更喜欢其集中环境的另一个肤浅迹象是(同样,默认情况下),如果您在自己的项目文件夹中创建一个Conda环境并激活它,出现在shell中的名称前缀是到文件夹。你可以通过给它一个名字来解决这个问题,但是默认情况下,虚拟环境是正确的。
我预计这个信息会很快变得陈旧,因为两个包管理器争夺主导地位,但这些是今天的权衡:)
编辑:我在04/2021再次审查了情况,它没有变化。使用conda安装本地目录仍然很尴尬。