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

时间:2018-08-23 05:20:56

标签: python pycharm anaconda environment virtual-environment

当我在PyCharm中创建一个新项目时,它会创建一个新的虚拟环境。我已经读过,当我执行Python脚本时,它们是在此环境而不是系统环境中使用解释器执行的。因此,如果需要安装某些软件包,则只​​能在此环境中安装它们,而不能在系统环境中安装它们。很好。

我还阅读了有关Anaconda Environment的信息。当我创建一个新的Anaconda环境时,它会创建一个与系统环境分开的新环境。对于我的项目,我可以使用此环境并仅在此处安装必需的软件包,而不能在主系统环境中安装。

现在,我的问题是PyCharm创建的虚拟环境与Anaconda创建的环境之间有什么区别? PyCharm创建的虚拟环境大约为15-20MB,而Anaconda的虚拟环境为90MB。因此,必须有所不同。另外,我已经读到可以配置PyCharm以使用Anaconda Environment解释器。

那么,PyCharm和Anaconda创建的环境之间有什么区别?

2 个答案:

答案 0 :(得分:11)

我必须澄清anaconda只是一个集合。真正的环境管理者是condaHereminiconda。它仅包含管理环境所需的部分,而不是完整的anaconda集合。

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


所以回到您的问题,当您在Pycharm中创建一个env时,它将询问您要创建哪个env:Virtualenv EnvironmentConda EnvironmentPipenv Environment。对于我来说,我通常选择Pipenv Environment,因为此环境将绑定到当前项目并可以生成锁定文件。

在这种情况下,我想您现在可以理解它:没有一个名为“由PyCharm创建”或“ Anaconda”的环境。只有名为“由Virtualenv,Conda或Pipenv创建”的环境。而Pycharm只是使用并包装其中之一。


那么Conda EnvironmentVirtualenv Environment之间有什么区别(Pipenv Environment本质上是具有复杂Virtualenv Environment的{​​{1}})?不同之处在于它们的用途不同。

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

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

总结:

Virtualenv

  1. 不仅管理Python软件包,而且还管理不同的Python版本和系统范围的依赖项。
  2. 环境位于用户范围内的目录中。
  3. 较少环境。

Conda Environment

  1. 管理Python软件包。主要目的是对每个应用程序进行分段依赖。
  2. 环境通常位于项目范围的目录中。(尽管Virtualenv Environment在默认情况下在用户范围的目录中创建环境,但是许多人认为项目目录应为默认情况。)
  3. 更多的环境(每个应用程序都有一个新的环境)

对我来说,我会同时使用它们。我使用pipenv管理不同的Python版本,并使用conda管理我的应用程序的依赖关系。

答案 1 :(得分:0)

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

Anaconda 是python发行版(就像linux发行版一样),默认情况下,它会根据开发人员的需求添加其他软件包。因此,安装的大小要大于安装普通香草python的大小。这也是为什么它的虚拟环境很大的原因。

Pycharm 是一个IDE,它恰好支持python的virtualenv功能。因此,如果您愿意,它可以为您创建它。您可以注意到,它可以使用普通的python发行版来创建它,因此它的大小要比使用Anaconda这样的发行版时要小。

大小问题并不特定于Anaconda,如果您列出了anaconda conda list为您安装的所有软件包,并手动将其自己安装在“轻量级” virtualenv中,则大小也会增加。我相信你明白我的意思。