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

2024-04-28

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

我还读过有关 Anaconda 环境的内容。当我创建一个新的 Anaconda 环境时,它会创建一个除系统环境之外的新环境。对于我的项目,我可以使用此环境并仅在此处安装所需的软件包,而不是在主系统环境中安装。

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

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


我必须澄清一下anaconda只是一个集合。真正的环境管理者是conda. Here https://conda.io/miniconda.html is miniconda。它只包含管理环境的必要部分,而不是完整的anaconda收藏。

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


回到你的问题,当你在 Pycharm 中创建一个 env 时,它会询问你要创建哪个 env:Virtualenv Environment, Conda Environment, or Pipenv Environment。对于我来说,我通常会选择Pipenv Environment因为此环境将绑定到当前项目并可以生成锁定文件。

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


那么有什么区别Conda Environment and Virtualenv 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. 环境通常位于项目范围的目录中。 (虽然pipenv默认情况下在用户范围目录中创建 env,很多人认为在项目目录中应该是默认的。)
  3. 更多环境。(每个应用程序都有一个新环境)

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyCharm 虚拟环境和 Anaconda 环境有什么区别? 的相关文章