ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

面向数据科学的 Anaconda 与 Conda 入门:Python 环境与包管理实战(c9-python-getting-started)

面向数据科学的 Anaconda 与 Conda 入门:Python 环境与包管理实战(c9-python-getting-started)
  • 示例工程
  • 教程

【免费下载链接】c9-python-getting-started

Sample code for Channel 9 Python for Beginners course

项目地址:https://gitcode.com/gh_mirrors/c9/c9-python-getting-started
点击查看免费下载

导读

本文围绕 c9-python-getting-started 仓库中《Even more Python for beginners - data tools》系列的第 02 课文档展开,系统讲解 Anaconda 发行版与 Conda 包/环境管理工具的核心概念与实战用法。读完本文,你将掌握 Anaconda 的组成结构(Navigator、Prompt、Conda)、Conda 管理环境与安装包的基本操作,并能理解本课程全部 Jupyter Notebook 示例在 Anaconda 环境下的运行前提与依赖关系。

Anaconda:开箱即用的数据科学 Python 发行版

Anaconda 是一个面向数据科学(data science)的开源 Python 与 R 语言发行版。它与普通 Python 安装器的最大区别在于"开箱即用":官方发行版内置了超过 1500 个常用包,覆盖数值计算、数据分析、可视化、机器学习等数据科学主流程所需的大多数第三方库,无需逐个手工安装。

从本课程的定位看,Anaconda 的价值正好契合其教学内容。系列课程 README 明确列出课程要学习的工具栈:

  • Jupyter Notebook:数据科学家常用的交互式笔记工具;
  • pandas:用于管理和探索数据;
  • NumPy:用于数组与数值计算;
  • scikit-learn:用于机器学习建模。

这四者恰恰都是 Anaconda 发行版内置包清单中的核心成员,安装 Anaconda 后即可直接进入后续课程,而无需先花时间解决依赖冲突。

Anaconda 的三大组成部分

Anaconda 并非单一程序,而是由以下三个相互配合的组件构成:

组件类型作用
Anaconda Navigator图形化界面(GUI)可视化地启动和管理 Jupyter Notebook、安装包、创建/切换环境,适合不熟悉命令行的新手
Anaconda Prompt命令行界面(CLI)在 Windows 上提供预置好 Conda 路径的命令行窗口,可执行 conda 系列命令
Conda命令行工具底层负责包安装与环境管理的核心工具,Navigator 与 Prompt 的许多操作最终都由它完成

三者分工明确:Navigator 降低使用门槛,Prompt 提供熟悉命令行操作者的入口,Conda 则是真正执行"安装包、管理环境"任务的引擎。

Conda:包管理与环境管理的统一解决方案

Python 代码往往依赖存储在包(package)中的外部库——本课程中import pandas、from sklearn.linear_model import LinearRegression等语句背后的 pandas、scikit-learn 都属于这类外部包。当项目增多后,不同项目可能需要不同版本的同一库,若全部安装到全局环境极易产生依赖冲突。

Conda 正是为解决这些问题而设计的开源包管理系统(package management system)兼环境管理系统(environment management system)。它同时承担两类职责:

  1. 包管理:负责搜索、安装、升级、删除第三方包,并自动解析依赖关系;
  2. 环境管理:允许你创建相互隔离的独立 Python 环境,不同环境可以安装不同版本的解释器与库,互不干扰。

本课程文档特别强调:Conda 帮助管理环境并为Jupyter Notebook安装包。这是因为课程中的全部代码示例都运行在 Jupyter Notebook(.ipynb 文件)中,而 Notebook 依赖内核(kernel)来执行 Python 代码,内核所处环境中的已安装包直接决定了 Notebook 里可以 import 什么。

本课程对 Conda 的实际依赖:来自仓库源码的证据

Notebook 内核与 Python 版本

课程中每一个练习 Notebook 都在元数据中声明了运行内核。以 03 - Pandas Series and DataFrame.ipynb 为例,其内核信息为:

"kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "name": "python", "version": "3.6.9" }

从源码结构看,kernelspec中的name: python3即表示该 Notebook 绑定到名为 Python 3 的 Jupyter 内核;language_info.version记录的 3.6.9 是该示例运行时的 Python 版本。同一信息在 04、05、07 等系列 Notebook 中保持一致,说明整套课程是在一个统一配置的 Python 3 环境中运行——这正是 Conda 环境管理发挥作用的具体场景。

依赖库安装位置指向 Anaconda 环境

更有力的证据出现在 07 - Read write CSV files.ipynb 的错误堆栈中。当读取 CSV 出现异常时,pandas 抛出的调用栈记录了库文件的安装路径:

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(...) ~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(...)

堆栈中的Anaconda3\lib\site-packages\路径直接证明:该课程示例环境中的 pandas 正是通过 Anaconda 发行版安装的——它位于 Anaconda 的默认 site-packages 目录下,而非独立安装的 Python 解释器。这是 Anaconda"内置 1500+ 常用包"这一特性在本仓库中的直接体现。

课程依赖栈一览

将系列各 Notebook 中的 import 语句汇总,即可看到本课程完整的技术依赖栈:

依赖库首次出现的课程示例典型用途
pandas03 - Pandas Series and DataFrame.ipynb(import pandas as pd)DataFrame 数据管理与探索
numpy13 - Evaluate accuracy.ipynb(import numpy as np)计算 RMSE 平方根等数值运算
scikit-learn10 - Train Test split.ipynb(from sklearn.model_selection import train_test_split)训练/测试集划分、线性回归建模
matplotlib15 - Visualizing correlations.ipynb(import matplotlib.pyplot as plt)数据相关性可视化

以 11 - Train a basic model.ipynb 的建模代码为例:

from sklearn.linear_model import LinearRegression regressor = LinearRegression() # 创建 scikit-learn 的 LinearRegression 对象 regressor.fit(X_train, y_train) # 使用 fit 方法在训练数据上训练模型

在 Anaconda 环境下,这类代码无需任何额外安装即可运行;若使用最小化 Python 环境,则必须先执行pip install pandas scikit-learn或conda install pandas scikit-learn。

Conda 环境与包管理核心操作

原文档通过官方文档链接给出了三大操作主题,这里将其整理为可直接上手的关键要点(以下命令适用于 Anaconda Prompt 或任意已初始化 Conda 的终端):

管理 Conda 环境

Conda 环境管理的核心流程为"创建 → 激活 → 使用 → 停用",配套常用命令如下:

操作命令说明
创建环境conda create --name myenv python=3.8新建名为 myenv 的环境,并指定 Python 版本
激活环境conda activate myenv切换当前终端到目标环境
停用环境conda deactivate退出当前环境,回到 base 环境
查看环境列表conda env list列出所有已创建的环境及其路径
删除环境conda env remove --name myenv移除不再需要的环境

激活环境后,该环境内的python、jupyter等命令及其所安装的包都会自动成为当前会话的可用资源。本课程 Notebook 所需的 pandas、scikit-learn 等依赖,就是在对应激活环境中安装并生效的。

在环境中安装包

激活目标环境后即可安装包,常用形式:

操作命令说明
安装包conda install pandas在当前环境安装 pandas,并自动解析依赖
指定版本安装conda install numpy=1.19.5安装指定版本的包
安装多个包conda install pandas scikit-learn matplotlib一次安装多个包,Conda 会统一求解依赖
更新包conda update numpy将包升级到当前源中的最新版本
查看已安装conda list列出当前环境所有已安装的包

对于 Notebook 场景,若环境缺少 Jupyter 内核,还需要通过conda install jupyter(或ipykernel)将 Notebook 内核注册进环境,之后才能在该环境中选择对应的内核运行课程中的 .ipynb 文件。

Conda cheat sheet 速查表

Conda 官方提供了覆盖上述全部常用命令的速查表(cheat sheet),适合作为日常高频命令的快速参考,包括环境创建/激活/停用、包搜索/安装/更新/删除、源配置与导出等常用指令。建议将其保存为本地备忘录,与本文的表格配合使用。

Conda 与 pip:两条包安装路径的选择

本仓库中另一个值得对照的细节是 more-python-for-beginners/requirements.txt,其内容为:

aiohttp requests

这个文件列出了通过pip install -r requirements.txt安装的依赖,说明仓库中同时存在 pip 与 conda 两条依赖管理路径,二者各有适用场景:

对比维度condapip
包来源Conda 官方源/自定义渠道(channel)PyPI(Python 包索引)
包类型Python 包及部分二进制依赖(如科学计算库)主要为 Python 包
依赖解析对包及其底层二进制依赖统一求解主要解析 Python 层依赖
环境管理内置环境管理系统,可隔离 Python 版本常配合 venv/virtualenv 使用
适用场景Anaconda 数据科学环境、跨语言依赖通用 Python 项目、PyPI 独有包

对本课程而言,Anaconda 发行版已内置 pandas、NumPy、scikit-learn、matplotlib 等全部数据科学依赖,通常无需再借助 pip;而当引入 PyPI 独有或版本更新更快的库时,pip install与 requirements.txt 则是更直接的选择。两种工具可以共存于同一环境,但需注意尽量避免混用导致依赖状态不一致。

安装 Anaconda 后如何开始本课程

在 Anaconda 环境中运行本课程 Notebook 的推荐路径如下:

  1. 安装 Anaconda:从 Anaconda 官网下载对应操作系统的安装包并完成安装,安装过程会同时部署 Navigator、Anaconda Prompt 与 Conda;
  2. 启动环境:通过 Anaconda Navigator 的 Launch 按钮启动 Jupyter Notebook,或在命令行执行jupyter notebook;
  3. 打开示例:在 Notebook 界面中定位到仓库的even-more-python-for-beginners-data-tools目录,打开任一.ipynb文件,确认内核为Python 3;
  4. 按需安装额外包:若在某一课程中遇到ModuleNotFoundError,先确认环境是否激活,再使用conda install <包名>补齐缺失依赖;
  5. 配套数据文件:课程示例还依赖随仓库分发的 CSV 数据(如 07 课的 airports.csv),确保 Notebook 与数据文件位于同一目录或调整读取路径。

小结

Anaconda 与 Conda 是数据科学 Python 开发的基石:Anaconda 提供包含 1500+ 包的"全家桶"发行版与 Navigator/Prompt 两种操作入口,Conda 则提供包管理与环境管理的统一命令行能力。本课程的全部 Jupyter Notebook 示例正是在 Anaconda 环境之上运行 pandas、NumPy、scikit-learn、matplotlib 等技术栈,其中 Notebook 元数据声明的python3内核、错误堆栈中指向Anaconda3\lib\site-packages\pandas的路径,都是这套环境的直接证据。掌握环境创建、激活、停用与包安装的核心命令后,你就能为后续课程(pandas 入门、Jupyter Notebook 等)准备好稳定、可复现的运行环境。

  • 示例工程
  • 教程

【免费下载链接】c9-python-getting-started

Sample code for Channel 9 Python for Beginners course

项目地址:https://gitcode.com/gh_mirrors/c9/c9-python-getting-started
点击查看免费下载
上一篇:TVM 部署到 Adreno GPU 全指南:OpenCL 纹理增强、OpenCLML 加速与 Android 端到端部署实战
下一篇:ASM 树 API 方法级组件合成:MethodNode 与 MethodVisitor 的链接模式与字节码转换实战

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进