【问题标题】:What is the difference between PyCharm Virtual Environment and Anaconda Environment?PyCharm 虚拟环境和 Anaconda 环境有什么区别?
【发布时间】:2019-01-29 10:06:09
【问题描述】:

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

我还阅读了有关 Anaconda 环境的信息。当我创建一个新的 Anaconda 环境时,它会创建一个不同于系统环境的新环境。对于我的项目,我可以使用这个环境,只在此处安装所需的包,而不是在主系统环境中。

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

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

【问题讨论】:

  • 您的所有疑问都在这里得到解答:stackoverflow.com/questions/38217545/…
  • Anaconda 包含许多科学库。当您从 anaconda 创建环境时,这些额外的库也包含在您的环境中,这就是为什么它相对于使用 virtualenv 创建并提供复制全局包的选项的 pycharm 具有更大的大小。
  • @pissall 谢谢!这是一个很好的答案
  • 无论您做什么或选择哪个,都为您的项目使用虚拟环境。否则你会遇到图书馆的麻烦。我建议不要使用 anaconda 或 miniconda 来了解库及其版本的情况。

标签: python pycharm anaconda environment virtual-environment


【解决方案1】:

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

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


回到你的问题,当你在 Pycharm 中创建环境时,它会询问你要创建哪个环境:Virtualenv EnvironmentConda EnvironmentPipenv Environment。至于我,我一般选择Pipenv Environment,因为这个env会绑定到当前项目,可以生成锁文件。

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


那么Conda EnvironmentVirtualenv Environment之间有什么区别(Pipenv Environment本质上是一个Virtualenv Environment和复杂的pip)?区别在于它们的目的不同。

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

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

总结一下:

Conda Environment:

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

Virtualenv Environment:

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

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

【讨论】:

    【解决方案2】:

    这两个环境都是基于python的virtualenv,你可以独立使用它们并根据需要在里面配置(或安装)包,不用担心冲突。这就是 virtualenv 的本质。

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-07-25
      • 1970-01-01
      • 2019-12-26
      • 2018-03-23
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      • 2021-10-30
      • 2020-11-20
      相关资源
      最近更新 更多