PyCharm 虚拟环境和 Anaconda 环境有什么区别?
What is the difference between PyCharm Virtual Environment and Anaconda Environment?
当我在 PyCharm 中创建一个新项目时,它会创建一个新的虚拟环境。我读到当我执行 Python 脚本时,它们是在这个环境中而不是系统环境中使用解释器执行的。所以,如果我需要安装一些包,我可以只在这个环境中安装它们,而不是在系统环境中安装它们。太棒了。
我还阅读了有关 Anaconda 环境的内容。当我创建一个新的 Anaconda 环境时,它会创建一个与系统环境不同的新环境。对于我的项目,我可以使用这个环境,只在此处安装所需的包,而不在主系统环境中安装。
现在,我的问题是 PyCharm 创建的虚拟环境和 Anaconda 创建的环境有什么区别? PyCharm 创建的虚拟环境大约为 15-20MB,而 Anaconda 为 90MB。所以,一定是有区别的。另外,我读到我可以配置我的 PyCharm 来使用 Anaconda 环境解释器。
那么,PyCharm和Anaconda创建的环境有什么不同呢?
两种环境都基于python的virtualenv,您可以独立使用它们并根据需要在其中配置(或安装)包,而无需担心冲突。这就是 virtualenv 的本质。
Anaconda 是一个 python 发行版(就像 linux 发行版一样),它默认根据开发人员的需求添加其他包。因此,安装比安装普通香草 python 更大。这也是它的虚拟环境相当大的原因。
Pycharm是一个IDE,正好支持python的virtualenv特性。因此,如果您愿意,它可以为您创建它。它可以使用普通的 python 发行版来创建它,因此它的大小比使用像 Anaconda 这样的发行版要小,正如您已经注意到的那样。
大小问题不是 Anaconda 特有的,如果您列出 anaconda conda list
为您安装的所有软件包并在 "lightweight" virtualenv 中手动安装它,您会看到大小也会增加.我相信你明白我的意思。
我必须澄清一下 anaconda
只是一个集合。真正的环境管理员是conda
。 Here 是 miniconda
。它只包含管理环境的必要部分,而不是完整的 anaconda
集合。
conda
不仅仅是一个简单的 Python 包管理器,而是一个系统范围的包管理器。它将帮助您轻松安装软件包。一个典型的例子是在 Windows 上安装 numpy
。没有conda
,这真的很困难,因为它需要一个很难获得的特定C编译器。但是对于 conda
,您可以只用一个命令 conda install numpy
安装 numpy
。它会自动解决编译器问题和C依赖。
所以回到你的问题,当你在Pycharm中创建一个环境时,它会问你要创建哪个环境:Virtualenv Environment
、Conda Environment
或Pipenv Environment
。我一般选择Pipenv Environment
,因为这个env会绑定到当前项目,可以生成锁文件。
在这种情况下,我想你现在可以理解了:没有名为 "created by PyCharm" 或 "Anaconda" 的环境。只有名为 "created by Virtualenv, Conda or Pipenv" 的环境。 Pycharm 只是使用并包装其中之一。
那么 Conda Environment
和 Virtualenv Environment
有什么区别(Pipenv Environment
本质上是一个 Virtualenv Environment
和复杂的 pip
)?不同之处在于他们的目的不同。
Conda Environment
通常用于 "Python user"。他们使用 Python 作为工具来做一些其他工作,例如网络爬虫、数据挖掘和图像处理。他们对 Python 了解不多(因为他们不需要知道),所以 conda
尽可能自动。他们的任务可以在计算机的任何地方,因此 conda
创建的环境位于用户范围的目录中。他们有时需要不同的 Python 版本,这可以在 conda
中完成,但不能在 virtualenv
.
中完成
Virtualenv Environment
通常用于 "Python developer"。他们使用 Python 来构建应用程序或包。 Virtualenv
创建的环境通常位于当前项目的目录中。因此,您可以为每个应用程序创建一个环境并轻松管理依赖项。
总结一下:
Conda Environment
:
- 不仅管理 Python 包,还管理不同的 Python 版本和系统范围的依赖项。
- 环境位于用户范围的目录中。
- 更少的环境
Virtualenv Environment
:
- 管理 Python 包。主要目的是为每个应用程序分离依赖关系。
- 环境通常位于项目范围的目录中。 (虽然
pipenv
默认情况下在用户范围的目录中创建环境,但许多人认为在项目目录中应该是默认的。)
- 更多环境。(每个应用程序的新环境)
对我来说,两者都用。我使用 conda
来管理不同的 Python 版本,并使用 pipenv
来管理我的应用程序的依赖项。
当我在 PyCharm 中创建一个新项目时,它会创建一个新的虚拟环境。我读到当我执行 Python 脚本时,它们是在这个环境中而不是系统环境中使用解释器执行的。所以,如果我需要安装一些包,我可以只在这个环境中安装它们,而不是在系统环境中安装它们。太棒了。
我还阅读了有关 Anaconda 环境的内容。当我创建一个新的 Anaconda 环境时,它会创建一个与系统环境不同的新环境。对于我的项目,我可以使用这个环境,只在此处安装所需的包,而不在主系统环境中安装。
现在,我的问题是 PyCharm 创建的虚拟环境和 Anaconda 创建的环境有什么区别? PyCharm 创建的虚拟环境大约为 15-20MB,而 Anaconda 为 90MB。所以,一定是有区别的。另外,我读到我可以配置我的 PyCharm 来使用 Anaconda 环境解释器。
那么,PyCharm和Anaconda创建的环境有什么不同呢?
两种环境都基于python的virtualenv,您可以独立使用它们并根据需要在其中配置(或安装)包,而无需担心冲突。这就是 virtualenv 的本质。
Anaconda 是一个 python 发行版(就像 linux 发行版一样),它默认根据开发人员的需求添加其他包。因此,安装比安装普通香草 python 更大。这也是它的虚拟环境相当大的原因。
Pycharm是一个IDE,正好支持python的virtualenv特性。因此,如果您愿意,它可以为您创建它。它可以使用普通的 python 发行版来创建它,因此它的大小比使用像 Anaconda 这样的发行版要小,正如您已经注意到的那样。
大小问题不是 Anaconda 特有的,如果您列出 anaconda conda list
为您安装的所有软件包并在 "lightweight" virtualenv 中手动安装它,您会看到大小也会增加.我相信你明白我的意思。
我必须澄清一下 anaconda
只是一个集合。真正的环境管理员是conda
。 Here 是 miniconda
。它只包含管理环境的必要部分,而不是完整的 anaconda
集合。
conda
不仅仅是一个简单的 Python 包管理器,而是一个系统范围的包管理器。它将帮助您轻松安装软件包。一个典型的例子是在 Windows 上安装 numpy
。没有conda
,这真的很困难,因为它需要一个很难获得的特定C编译器。但是对于 conda
,您可以只用一个命令 conda install numpy
安装 numpy
。它会自动解决编译器问题和C依赖。
所以回到你的问题,当你在Pycharm中创建一个环境时,它会问你要创建哪个环境:Virtualenv Environment
、Conda Environment
或Pipenv Environment
。我一般选择Pipenv Environment
,因为这个env会绑定到当前项目,可以生成锁文件。
在这种情况下,我想你现在可以理解了:没有名为 "created by PyCharm" 或 "Anaconda" 的环境。只有名为 "created by Virtualenv, Conda or Pipenv" 的环境。 Pycharm 只是使用并包装其中之一。
那么 Conda Environment
和 Virtualenv Environment
有什么区别(Pipenv Environment
本质上是一个 Virtualenv Environment
和复杂的 pip
)?不同之处在于他们的目的不同。
Conda Environment
通常用于 "Python user"。他们使用 Python 作为工具来做一些其他工作,例如网络爬虫、数据挖掘和图像处理。他们对 Python 了解不多(因为他们不需要知道),所以 conda
尽可能自动。他们的任务可以在计算机的任何地方,因此 conda
创建的环境位于用户范围的目录中。他们有时需要不同的 Python 版本,这可以在 conda
中完成,但不能在 virtualenv
.
Virtualenv Environment
通常用于 "Python developer"。他们使用 Python 来构建应用程序或包。 Virtualenv
创建的环境通常位于当前项目的目录中。因此,您可以为每个应用程序创建一个环境并轻松管理依赖项。
总结一下:
Conda Environment
:
- 不仅管理 Python 包,还管理不同的 Python 版本和系统范围的依赖项。
- 环境位于用户范围的目录中。
- 更少的环境
Virtualenv Environment
:
- 管理 Python 包。主要目的是为每个应用程序分离依赖关系。
- 环境通常位于项目范围的目录中。 (虽然
pipenv
默认情况下在用户范围的目录中创建环境,但许多人认为在项目目录中应该是默认的。) - 更多环境。(每个应用程序的新环境)
对我来说,两者都用。我使用 conda
来管理不同的 Python 版本,并使用 pipenv
来管理我的应用程序的依赖项。