一文了解 conda 与 Python 的关系
conda 是 2012 年发布的跨平台包管理软件,本文会对 conda 与 Python 的种种关系进行说明。
1. 什么是 conda ?
conda 是一个包管理器。值得注意的是,
它不仅仅是 Python 的包管理器,而是一个通用的包管理器,当初设计时被用来管理任何语言的包
。在目前来看,conda 环境中所有语言的包管理,都是为了 Python 而服务的。
2. Anaconda 与 Miniconda
Anaconda 是一个 Python 的发行版
,内置了众多 Python 包和附加软件(pydata 生态圈里的软件),所以 Anaconda 自然内置了 conda。
而 Miniconda 则提供了一个最小的 conda 安装环境
,十分干净轻巧。
3. conda 与 pip
conda 和 pip
均可以用来管理 Python 依赖包
,但二者也仅仅在包管理这个子集上有交集。
pip 和 conda 处理包的底层机制各不相同,pip 使用 wheels,conda 是二进制编排。conda 对于底层 c 代码的依赖处理的更好。
4. conda 与 virtualenv
conda 和 virtualenv
都可以创建虚拟环境
,进行 Python 运行环境的隔离。
你也可以在 virtualenv 中使用 conda,但强烈不建议混用两者。
使用建议
conda 和 pip、virtualenv 都是很好的工具,它们为不同的目的而存在,如何使用可根据个人喜好和需求而来。
但请不要混用两者
:
-
要么持续使用 pip、virtualenv
-
要么持续使用 conda
参考链接