当我在PyCharm中创建一个新项目时,它会创建一个新的虚拟环境。我读到当我执行Python脚本时,它们是在这个环境中使用解释器而不是系统环境中执行的。所以,如果我需要安装一些包,我可以只在这个环境中安装它们,而不是在系统环境中安装它们。那很酷。
我也读过关于水蟒环境的书。当我创建一个新的Anaconda环境时,它会创建一个与system env不同的新环境。对于我的项目,我可以使用这个环境,并且只在这里安装所需的软件包,而不在主系统环境中安装。
现在,我的问题是PyCharm创建的虚拟环境和Anaconda创建的环境有什么区别?PyCharm创建的虚拟环境约为15-20MB,而Anaconda的虚拟环境为90MB。所以,肯定是有区别的。此外,我读到我可以配置我的PyCharm使用Anaconda环境解释器。
那么,PyCharm和Anaconda创造的环境有什么区别呢?
我必须澄清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环境
:
虚拟环境
:
pipenv
默认在用户范围目录中创建env,但许多人认为在项目目录中应该是默认的。)
对我来说,我两者都用。我使用conda
来管理不同的Python版本,并使用pipenv
来管理我的应用程序的依赖关系。
这两种环境都基于python的虚拟环境,您可以独立使用它们,并根据需要在其中配置(或安装)包,而无需担心冲突。这就是虚拟环境的本质。
Anaconda是一个python发行版(就像linux发行版一样),默认情况下,它会根据开发人员的需求添加其他包。因此,安装要比安装普通python大。这也是它的虚拟环境非常大的原因。
Pycharm是一个IDE,它恰好支持python的virtualenv特性。如果你愿意,它可以为你创建它。它可以使用普通的python发行版来创建它,因此,正如您所注意到的,与使用像Anaconda这样的发行版相比,它的大小会更小。
尺寸问题并不特定于Anaconda,如果您列出Anacondaconda list
为您安装的所有软件包,并在“轻量级”virtualenv中手动安装,您将看到尺寸也会增加。我相信你明白我的意思。