What is the difference between PyCharm Virtual Environment and Anaconda Environment?
当我在PyCharm中创建一个新项目时,它会创建一个新的虚拟环境。我已经读过,当我执行Python脚本时,它们是使用此环境中的解释器而不是系统环境来执行的。所以,如果我需要安装一些软件包,我只能在这个环境中安装它们,而不是在系统环境中安装它们。这很酷。
我也读过有关Anaconda Environment的文章。当我创建一个新的Anaconda环境时,它会创建一个除系统环境之外的新环境。对于我的项目,我可以使用此环境并仅在此处安装所需的包,而不是在主系统环境中。
现在,我的问题是PyCharm创建的虚拟环境与Anaconda创建的环境之间有什么区别? PyCharm创建的虚拟环境大约为15-20MB,而Anaconda的虚拟环境为90MB。所以,必须有所不同。另外,我已经读过我可以配置我的PyCharm来使用Anaconda Environment解释器。
那么,PyCharm和Anaconda创建的环境之间有什么区别?
-
您的所有疑问都在这里得到解答:stackoverflow.com/questions/38217545/
-
Anaconda包括许多科学图书馆。 当您从anaconda创建环境时,您的环境中还包含其他库,这就是为什么它相对于使用virtualenv创建并提供复制全局包的选项的pycharm具有更大的大小。
-
@pissall谢谢! 这是一个非常好的答案
-
无论您做什么或选择哪个,都可以为项目使用虚拟环境。 否则你将遇到库的问题。 我建议不要使用anaconda或miniconda来了解库及其版本的用途。
我必须澄清anaconda只是一个集合。真正的环境管理器是conda。这是miniconda。它只包含管理环境的必要部分,而不是完整的anaconda集合。
conda超出了简单的Python包管理器,但它是一个系统范围的包管理器。它可以帮助您轻松安装包。一个典型的例子是在Windows上安装numpy。如果没有conda,它真的很难,因为它需要一个难以获得的特定C编译器。但是使用conda,只需一个命令conda install numpy即可安装numpy。它将自动解决编译器问题和C依赖关系。
回到你的问题,当你在Pycharm中创建一个env时,它会询问你要创建哪个env:Virtualenv Environment,Conda Environment或Pipenv Environment。至于我,我通常选择Pipenv Environment因为这个env将被绑定到当前项目并且可以生成锁定文件。
在这种情况下,我认为你现在可以理解它:没有一个名为"由PyCharm创建"或"Anaconda"的环境。只有名为"由Virtualenv,Conda或Pipenv创建"的envs。 Pycharm只使用并包装其中一个。
那么Conda Environment和Virtualenv Environment之间的区别是什么(Pipenv Environment本质上是Virtualenv Environment与复杂的pip)?差异来自他们的不同目的。
Conda Environment通常用于"Python用户"。他们使用Python作为工具来完成其他工作,例如网页抓取,数据挖掘和图像处理。他们对Python知之甚少(因为他们不需要知道)所以conda尽可能自动化。它们的任务可以在计算机的任何位置,因此conda创建的环境位于用户范围的目录中。他们有时需要不同的Python版本,这可以在conda但不是virtualenv中完成。
Virtualenv Environment通常用于"Python开发人员"。他们使用Python来构建应用程序或包。由virtualenv创建的env通常位于当前项目的目录中。因此,您可以为每个应用程序创建一个env,并轻松管理依赖项。
总结一下:
Conda Environment:
不仅管理Python包,还管理不同的Python版本和系统范围的依赖项。
Envs位于用户范围的目录中。
减少环境。
Virtualenv Environment:
管理Python包。主要目的是为每个应用程序分配依赖关系。
Envs通常位于项目范围的目录中。(虽然pipenv默认情况下在用户范围的目录中创建env,但许多人认为项目目录应该是默认目录。)
更多envs。(每个应用程序的新环境)
对我来说,我同时使用它们。我使用conda来管理不同的Python版本,并使用pipenv来管理我的应用程序的依赖项。
这两种环境都基于python的virtualenv,您可以根据需要独立使用它们并在其中配置(或安装)软件包,而不必担心冲突。这是virtualenv的精髓。
Anaconda是一个python发行版(就像linux发行版一样)它默认根据开发人员需要的意见添加其他包。因此,安装比安装普通香草python时要大。这也是它的虚拟环境非常大的原因。
Pycharm是一个IDE,它恰好支持python的virtualenv功能。如果您愿意,它可以为您创建它。它可以使用普通的python发行版来创建它,所以这将比使用像Anaconda这样的发行版时的尺寸更小,正如您所注意到的那样。
尺寸问题并非特定于Anaconda,如果您列出anaconda conda list为您安装的所有软件包并自行手动安装在"轻量级"virtualenv中,您将看到尺寸也会增加。我相信你明白我的观点。