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

33 浏览
0 Comments

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

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

我也了解到Anaconda环境。当我创建一个新的Anaconda环境时,它会与系统环境分离,我可以在我的项目中使用此环境,仅安装所需的包而不是在主系统环境中安装。

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

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

admin 更改状态以发布 2023年5月24日
0
0 Comments

这两个环境都基于Python的virtualenv,你可以独立使用它们并根据需要在其中配置(或安装)软件包,而不必担心冲突。这就是virtualenv的核心思想。

Anaconda是一个Python发行版(就像Linux发行版一样),默认情况下会根据其对开发者需要什么的看法添加其他软件包。因此,其安装程序要比安装纯粹的Python大。这也是为什么它的虚拟环境非常大的原因。

Pycharm是一款集成开发环境,它恰好支持Python的虚拟环境功能。因此,如果你希望,它可以为你创建虚拟环境。如果使用纯Python发行版进行创建,它的大小会比使用类似Anaconda这样的发行版小,就像你已经注意到的那样。

大小问题并不局限于Anaconda,如果你列出Anaconda为你安装的所有软件包conda list并在“轻量级”虚拟环境中手动安装它们,你也会看到其大小增加。我相信你明白我的意思。

0
0 Comments

我必须澄清一下,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将绑定到当前项目,并且可以生成一个lock文件。

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


Conda EnvironmentVirtualenv Environment之间有什么区别(Pipenv Environment本质上是具有复杂pipVirtualenv Environment)?这种区别来自于它们不同的目的。

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

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

总之:

Conda Environment

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

Virtualenv Environment

  1. 管理Python包。主要目的是为每个应用程序分离依赖项。
  2. 环境通常位于项目级别的目录中。(尽管pipenv默认在用户级别目录中创建env,但许多人认为在项目目录中创建env应该是默认值。)
  3. 更多的环境。(每个应用程序都需要创建一个新环境)

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

0