跳转至

10.6 第三方库与虚拟环境——Python 与 Anaconda

内容梗概

本节是本章的收尾内容(老师说明不讲对本课程影响不大,主要为同时上了人工智能/Anaconda 相关课程的同学答疑)。老师用口述方式梳理了 Anaconda 的发展脉络与它和 Python 的关系:Anaconda 最初是"Python + 常用科学计算库"的打包发行版,其附带的包管理工具 conda 后来发展为独立于 Python 的包/环境管理器;嫌 Anaconda 臃肿的人又推出了只含 conda 的 Miniconda。最后老师表达了个人偏好(不喜欢用 Anaconda),并强调程序员不要陷入形式主义,怎么方便怎么来。

知识点详解

1. Anaconda 的由来(约 00:18–02:43)

  • Anaconda 是由 Python 发展出来的一个社区。
  • 背景:搞科学计算/科研的人需要大量第三方库——requests、numpy、matplotlib(画图)、pandas(数据分析)、dlib(机器学习)等等;即使有虚拟环境管理,一个个 pip install 也非常累。
  • 于是一群"热心群众"组织社区推出 Anaconda:最初就是 Python + 机器学习/科学计算相关的常用库 打的一个包,做成一个新软件;后期还附带了 Spyder 编辑器。

2. conda 的独立发展(约 02:43–04:40)

  • Anaconda 附带一个叫 conda 的工具:它和 pip 一样是**包管理工具**,可以 conda install 安装各种库,甚至 conda install python=2.x 安装某个版本的 Python 本身。
  • 与 pip 的关键区别:pip 本身依赖 Python 才能运行,conda 是脱离 Python 的包管理器——既然已经是独立的包管理器,管理多个版本的 Python 自然也可以(下载下来自动安装即可)。
  • 后来 conda 越做越大:不仅管 Python 环境,连 **R 语言**的库和编译环境也纳入管理(数据分析、数据挖掘场景常用 R),Anaconda 逐渐发展成与 Python 相对独立的社群。

3. Anaconda、conda、Miniconda 的关系(约 04:40–05:53)

  • Anaconda = Python 环境 + conda 包管理工具 + 一大堆科学计算库(安装包 500 多 MB)。
  • 有人嫌 Anaconda 太大,于是做出 Miniconda:只含 conda 管理工具,不带 Python 也不带其他库,体积很小;Python 之后再用 conda 装即可。
  • 关系脉络:Python 衍生出 Anaconda → conda 独立为通用包/环境管理器 → 为精简又产生 Miniconda。

4. 老师的个人态度(约 05:53–06:43)

  • 老师个人不喜欢用 Anaconda:一装就是几百兆,而大部分情况下只用其中一两个库,用过一段时间后放弃了。
  • 但强调这纯属个人偏好:程序员不要陷入形式主义,怎么方便怎么来、怎么高兴怎么来。
  • 课上最后把口述内容以文字列出(未再念),随后进入答疑。

示例与演示

  • 本节以概念讲解和关系图为主,无代码演示;课件中用关系图展示了 Python、Anaconda、conda、Miniconda 之间的演化关系。

重点与难点

  • 理解三个概念的层次:conda(包/环境管理工具)< Miniconda(仅 conda)< Anaconda(conda + Python + 科学计算库全家桶)。
  • conda 与 pip 的本质区别:conda 不依赖 Python、可管理 Python 版本乃至 R 语言环境;pip 依附于某个 Python 环境。
  • 选择建议:没有绝对优劣,按需取用,避免形式主义。

关联内容

  • 呼应 10.5:Anaconda 也提供虚拟环境管理工具,与 pipenv、Python 自带工具逻辑机制一致;选课同学若已装 Anaconda 可直接用其环境管理。
  • 呼应 10.1:科学计算常用的第三方库(numpy、matplotlib、pandas、dlib)即本章安装的各类第三方包。
  • 本章(10.1–10.6)至此完整覆盖:第三方库概念 → pip 包管理机制 → 镜像加速 → 离线/whl 安装 → 虚拟环境管理 → Python 生态中的 Anaconda 发行版。