文章目录
1. 什么是 conda?
在初学Python之时,就常听别人说用 conda 有多方便,一直不以为然,直到接触需要调用有大量依赖库及版本间有显著差异的深度强化学习领域时,才知道用 conda 管理环境会有多方便,那么什么是 conda?
Conda 发行并开源于 2012 年,是一个可以在Windows、maxOS和Linux上运行的包和环境管理系统,它能够适用于任何语言的打包和分发,包括Python、R、Ruby、Lua、Java、C/C++等。Conda 允许用户方便地安装、运行和更新不同版本的二进制软件包与该计算平台所需要的所有库(以及库的依赖项)。在实际当中,利用 conda 最主要的目的是为了使得不同版本Python环境、不同版本模块能够共存和灵活切换。
在默认配置下,conda可以安装和管理来自repo.anaconda.com仓库的7,500多个软件包,该仓库由Anaconda生成,审查和维护。
除了 conda,我们常常看到的 Anaconda 和 Miniconda 又是什么呢?接下来将介绍 conda 与它们之间的区别。
1.1 Conda 与 Anaconda 的区别
诸如 Anaconda、Miniconda、Bioconda(用于计算生物学)等都是基于 conda 的工具软件,这些软件均包含 conda 包和环境管理器,但两者的概念仍要进行一定的区分。
Anaconda 是一个大而全的软件发行版,是一个预先建立和配置好的模块集,能够安装在操作系统上使用。它包含了Python本身和数百个第三方开源项目的二进制文件,如 numpy、scipy、ipython、matplotlib等,这些库基本是为了方便处理数据科学相关的问题。
Miniconda 也是一个软件发行版,但它仅包含python、conda 和 conda 的依赖项,本质上就是一个空的用来安装 conda 环境的安装器,它没有 Anaconda 中那么多的包,可以理解为 Anaconda 的精简版,能够方便用户按照自己的需求,从零开始构建任意的环境。
尽管可以独立地下载安装 conda 而不用 Anaconda 和 Miniconda,但后两者为提供了 conda 安装环境,使用起来会更方便。
1.2 Conda 与 pip 的区别
Conda 作为软件包管理器,可以帮助用户查找和安装软件包,这与另一个常见的基于Python的跨平台包管理器 pip 类似。那既然 Python 自带了 pip 包管理工具,为什么还会需要使用 conda 呢?
先来介绍 pip,它是 Python 包的通用管理器,全称是 Pip Install Packages
,它是一个Python官方认证的包管理工具,只能管理python包而无法安装非Python依赖项,例如HDF5、MKL、LLVM等,通常用于在相互独立的环境中安装发布在 Python Package Index(PyPI)上面的包。Pip和 PyPI 均由Python Packaging Authority(PyPA)管理和支持。
而 conda 既具有 pip 的包管理能力,同时也具有 vitualenv 的环境管理功能,因此在相互独立的环境中,可以简单认为 conda 就是 pip 和 vitualenv 的组合,在包管理这方面,conda 不仅能管理 python 包,还可以管理任何类型的、用任何语言写的包和依赖,包来源是 Anaconda repo(默认)和 Cloud。
简单而言,pip 与 conda 最关键的区别在于,在使用 pip 之前,必须通过系统软件包管理器下载和安装python解释器,而 conda 可以直接安装 python 软件包以及解释器,但 conda 只能在 conda 环境下安装各类的包,因此需要先创建 conda 环境。
2. 下载安装
这里我们演示 Miniconda 的下载安装,软件包的下载来源有两种:
- 官方网站:https://docs.anaconda.com/free/miniconda/miniconda-install/
- 清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/,个人试了下镜像源关闭了,好像是因为未取得 Anaconda 和 Miniconda 的授权