提问者:小点点

PyCharm虚拟环境和Anaconda环境有什么区别?


当我在PyCharm中创建一个新项目时,它会创建一个新的虚拟环境。我读到当我执行Python脚本时,它们是在这个环境中使用解释器而不是系统环境中执行的。所以,如果我需要安装一些包,我可以只在这个环境中安装它们,而不是在系统环境中安装它们。那很酷。

我也读过关于水蟒环境的书。当我创建一个新的Anaconda环境时,它会创建一个与system env不同的新环境。对于我的项目,我可以使用这个环境,并且只在这里安装所需的软件包,而不在主系统环境中安装。

现在,我的问题是PyCharm创建的虚拟环境和Anaconda创建的环境有什么区别?PyCharm创建的虚拟环境约为15-20MB,而Anaconda的虚拟环境为90MB。所以,肯定是有区别的。此外,我读到我可以配置我的PyCharm使用Anaconda环境解释器。

那么,PyCharm和Anaconda创造的环境有什么区别呢?


共2个答案

匿名用户

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

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

所以回到你的问题,当你在Py魅力中创建一个环境时,它会问你想要创建哪个环境:Virtualenv环境Conda环境Pipenv环境。至于我,我通常选择Pipenv环境,因为这个env将绑定到当前项目,并可以生成锁定文件。

在本例中,我认为您现在可以理解了:没有名为“由PyCharm创建”或“Anaconda”的环境。只有名为“由Virtualenv、Conda或Pipenv创建”的环境。Pycharm只使用和包装其中一个。

那么Conda环境Virtualenv环境之间的区别是什么呢(Pipenv环境本质上是一个Virtualenv环境,具有复杂的pip)?差异来自于他们不同的目的。

Conda环境通常用于“Python用户”。他们使用Python作为工具来完成其他一些工作,如web爬行、数据挖掘和图像处理。他们对Python了解不多(因为他们不需要知道),所以conda尽可能自动化。它们的任务可以在计算机中的任何位置,因此由conda创建的环境位于用户范围的目录中。他们有时需要不同的Python版本,这可以在conda中完成,但不能在virtualenv中完成。

Virtualenv环境通常用于Python开发者。他们使用Python来构建应用程序或包。由Virtualenv创建的envs通常位于当前项目的目录中。因此,您可以为每个应用程序创建环境,并轻松管理依赖关系。

总而言之:

Conda环境

  1. 不仅管理Python包,还管理不同的Python版本和系统范围的依赖关系。
  2. Envs位于用户范围的目录中。
  3. 更少的环境。

虚拟环境

  1. 管理Python包。主要目的是分离每个应用程序的依赖关系。
  2. Envs通常位于项目范围的目录中。(虽然pipenv默认在用户范围目录中创建env,但许多人认为在项目目录中应该是默认的。)
  3. 更多的环境。每个应用程序的新环境)

对我来说,我两者都用。我使用conda来管理不同的Python版本,并使用pipenv来管理我的应用程序的依赖关系。

匿名用户

这两种环境都基于python的虚拟环境,您可以独立使用它们,并根据需要在其中配置(或安装)包,而无需担心冲突。这就是虚拟环境的本质。

Anaconda是一个python发行版(就像linux发行版一样),默认情况下,它会根据开发人员的需求添加其他包。因此,安装要比安装普通python大。这也是它的虚拟环境非常大的原因。

Pycharm是一个IDE,它恰好支持python的virtualenv特性。如果你愿意,它可以为你创建它。它可以使用普通的python发行版来创建它,因此,正如您所注意到的,与使用像Anaconda这样的发行版相比,它的大小会更小。

尺寸问题并不特定于Anaconda,如果您列出Anacondaconda list为您安装的所有软件包,并在“轻量级”virtualenv中手动安装,您将看到尺寸也会增加。我相信你明白我的意思。