当我在PyCharm中创建一个新项目时,它会创建一个新的虚拟环境。我已经读过,当我执行Python脚本时,它们是在此环境而不是系统环境中使用解释器执行的。因此,如果需要安装某些软件包,则只能在此环境中安装它们,而不能在系统环境中安装它们。很好。
我还阅读了有关Anaconda Environment的信息。当我创建一个新的Anaconda环境时,它会创建一个与系统环境分开的新环境。对于我的项目,我可以使用此环境并仅在此处安装必需的软件包,而不能在主系统环境中安装。
现在,我的问题是PyCharm创建的虚拟环境与Anaconda创建的环境之间有什么区别? PyCharm创建的虚拟环境大约为15-20MB,而Anaconda的虚拟环境为90MB。因此,必须有所不同。另外,我已经读到可以配置PyCharm以使用Anaconda Environment解释器。
那么,PyCharm和Anaconda创建的环境之间有什么区别?
答案 0 :(得分:11)
我必须澄清anaconda
只是一个集合。真正的环境管理者是conda
。 Here是miniconda
。它仅包含管理环境所需的部分,而不是完整的anaconda
集合。
conda
不仅是简单的Python软件包管理器,还是系统级的软件包管理器。这将帮助您轻松安装软件包。一个经典的示例是在Windows上安装numpy
。如果没有conda
,这确实很困难,因为它需要一个很难获得的特定C编译器。但是使用conda
,您只需一个命令numpy
就可以安装conda install numpy
。它将自动解决编译器问题和C依赖性。
所以回到您的问题,当您在Pycharm中创建一个env时,它将询问您要创建哪个env:Virtualenv Environment
,Conda Environment
或Pipenv Environment
。对于我来说,我通常选择Pipenv Environment
,因为此环境将绑定到当前项目并可以生成锁定文件。
在这种情况下,我想您现在可以理解它:没有一个名为“由PyCharm创建”或“ Anaconda”的环境。只有名为“由Virtualenv,Conda或Pipenv创建”的环境。而Pycharm只是使用并包装其中之一。
那么Conda Environment
和Virtualenv Environment
之间有什么区别(Pipenv Environment
本质上是具有复杂Virtualenv Environment
的{{1}})?不同之处在于它们的用途不同。
pip
通常用于“ Python用户”。他们使用Python作为工具来完成其他一些工作,例如网络爬网,数据挖掘和图像处理。他们对Python不太了解(因为他们不需要知道),因此Conda Environment
是尽可能自动的。它们的任务可以在计算机中的任何位置,因此conda
创建的环境位于用户范围的目录中。他们有时需要不同的Python版本,可以在conda
中完成,但不能在conda
中完成。
virtualenv
通常用于“ Python开发人员”。他们使用Python来构建应用程序或程序包。由Virtualenv Environment
创建的环境通常位于当前项目的目录中。因此,您可以为每个应用程序创建一个环境并轻松管理依赖项。
总结:
Virtualenv
:
Conda Environment
:
Virtualenv Environment
在默认情况下在用户范围的目录中创建环境,但是许多人认为项目目录应为默认情况。)对我来说,我会同时使用它们。我使用pipenv
管理不同的Python版本,并使用conda
管理我的应用程序的依赖关系。
答案 1 :(得分:0)
两个环境均基于python的virtualenv,您可以独立使用它们,并根据需要在其中配置(或安装)软件包,而无需担心冲突。这是virtualenv的本质。
Anaconda 是python发行版(就像linux发行版一样),默认情况下,它会根据开发人员的需求添加其他软件包。因此,安装的大小要大于安装普通香草python的大小。这也是为什么它的虚拟环境很大的原因。
Pycharm 是一个IDE,它恰好支持python的virtualenv功能。因此,如果您愿意,它可以为您创建它。您可以注意到,它可以使用普通的python发行版来创建它,因此它的大小要比使用Anaconda这样的发行版时要小。
大小问题并不特定于Anaconda,如果您列出了anaconda conda list
为您安装的所有软件包,并手动将其自己安装在“轻量级” virtualenv中,则大小也会增加。我相信你明白我的意思。