关于python:PyCharm虚拟环境和Anaconda环境有什么区别?

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创建的环境之间有什么区别?


我必须澄清anaconda只是一个集合。真正的环境管理器是conda。这是miniconda。它只包含管理环境的必要部分,而不是完整的anaconda集合。

conda超出了简单的Python包管理器,但它是一个系统范围的包管理器。它可以帮助您轻松安装包。一个典型的例子是在Windows上安装numpy。如果没有conda,它真的很难,因为它需要一个难以获得的特定C编译器。但是使用conda,只需一个命令conda install numpy即可安装numpy。它将自动解决编译器问题和C依赖关系。

回到你的问题,当你在Pycharm中创建一个env时,它会询问你要创建哪个env:Virtualenv EnvironmentConda EnvironmentPipenv Environment。至于我,我通常选择Pipenv Environment因为这个env将被绑定到当前项目并且可以生成锁定文件。

在这种情况下,我认为你现在可以理解它:没有一个名为"由PyCharm创建"或"Anaconda"的环境。只有名为"由Virtualenv,Conda或Pipenv创建"的envs。 Pycharm只使用并包装其中一个。

那么Conda EnvironmentVirtualenv 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中,您将看到尺寸也会增加。我相信你明白我的观点。