我必须澄清一下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
:
- 不仅管理 Python 包,还管理不同的 Python 版本和系统范围的依赖项。
- Env 位于用户范围的目录中。
- 更少的环境。
Virtualenv Environment
:
- 管理 Python 包。主要目的是分离每个应用程序的依赖关系。
- 环境通常位于项目范围的目录中。 (虽然
pipenv
默认情况下在用户范围目录中创建 env,很多人认为在项目目录中应该是默认的。)
- 更多环境。(每个应用程序都有一个新环境)
对于我来说,我同时使用它们。我用conda
管理不同的Python版本并使用pipenv
管理我的应用程序的依赖关系。