37

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

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

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

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

4

2 回答 2

46

我必须澄清这anaconda只是一个集合。真正的环境管理器是conda. 这里miniconda。它只包含管理环境的必要部分,而不是完整的anaconda集合。

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


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

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


Conda Environment那么和Virtualenv EnvironmentPipenv 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. Envs 位于用户范围的目录中。
  3. 更少的环境。

Virtualenv Environment

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

对我来说,我两个都用。我conda用来管理不同的 Python 版本并pipenv用来管理我的应用程序的依赖项。

于 2018-08-23T07:06:08.700 回答
4

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

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

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

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

于 2018-08-23T05:57:56.557 回答