Miniconda 安装与 Jupyter 使用入门:conda 虚拟环境完整教程(Windows)
一句话概览: Miniconda 是轻量的 Python 环境与包管理器 ,用于为不同项目创建相互隔离、可复现的虚拟环境,并自由安装、切换 Python 版本;Jupyter(Jupyter Notebook / JupyterLab)是交互式笔记本编程环境,支持代码逐格运行、图文与公式混排、结果即时可视化。二者是搭档关系:先用 conda 准备好独立环境,再让 Jupyter 使用该环境的内核(Kernel)来运行代码。本文面向零基础读者,以 Windows + CPU 环境为例,完整讲清原理、命令、避坑要点与安装全流程。
**适用读者:**零基础、想系统搭建 Python 数据分析 / 深度学习环境的学习者。
**适用环境:**Windows 10/11(macOS、Linux 命令基本通用);无独立显卡也可使用,本文采用 CPU 版;示例使用成熟稳定的 Python 3.10。
**最后更新:**2026 年 9 月。核心命令长期稳定,具体版本号请以官方页面为准。
本文目录
-
第 0 章 全局地图:Miniconda 与 Jupyter 的分工与协作关系
-
第一部分 Miniconda:依赖痛点、虚拟环境、术语辨析、能力清单与命令手册
-
第二部分 Jupyter Notebook:核心概念、能力全景、界面操作与快捷键
-
第三部分 关键:Jupyter 如何使用 conda 环境(内核绑定)与五步安装
-
第四部分 它们在数据科学 / AI 技术栈中的位置
-
第五部分 Windows 安装实战:五步行动清单与通关验证
-
常见问题 FAQ(新手高频问题速查)
-
结语与相关资源
Miniconda 和 Jupyter 是什么、能做什么?从安装到上手一篇讲透
第 0 章 先建立一张全局地图:它俩根本不是一类东西
很多人第一次装环境会懵,是因为把 Miniconda 和 Jupyter 当成了"两个差不多的软件,是不是装一个就行"。完全不是。它俩解决的是两个正交(互不重叠)的问题,而且是搭档关系。
先用一个"开餐厅"的比喻把全局钉死:
-
你要做菜(跑代码 / 训练模型)。
-
Miniconda 像"后厨总管 + 仓库管理员":它负责给每道菜准备一间独立厨房,厨房里配齐特定版本的灶台、刀具、食材(Python 解释器、PyTorch、numpy、d2l 这些"包")。A 厨房用老版食材、B 厨房用新版食材,互不串味。
-
Jupyter 像"明档操作台 + 带草稿纸的试验台":你在上面切一刀、尝一口、记一笔,做一步看一步结果,还能把"做法说明、照片、公式"和"操作步骤"混排在一起,最后直接端出一份"既好看又能复现的料理笔记"。
一句话分工:
Miniconda 管的是"用哪一套 Python 和哪些库、它们之间别打架"(环境与依赖);Jupyter 管的是"用什么方式一行行交互式地写代码、看结果、做笔记"(开发与表达界面)。
再换个更技术的对照:
| Miniconda(conda) | Jupyter | |
|---|---|---|
| 本质 | 环境管理器 + 包管理器 + Python 版本管理器 | 交互式计算环境 / 可编程笔记本 |
| 解决的痛点 | "在我电脑上能跑、在你那儿报错""版本冲突" | "写一段就要看一段结果、还要图文并茂地记录" |
| 你跟它打交道的方式 | 主要在命令行(终端)敲命令 | 在浏览器界面里点格子、敲代码 |
| 没有它会怎样 | 所有项目挤在一个 Python 里,迟早版本打架 | 只能写完整脚本一次性运行,探索和做笔记很别扭 |
| 类比 | 厨房/仓库总管 | 试验台/画板 |
以李沐《动手学深度学习》(dive into deep learning,简称 d2l,并提供同名 d2l 工具包)课程为例,其标准安装分为 4 步,本质就是:**先用 Miniconda 把"独立环境 + 正确版本的库"备好(步骤①②③),再用 Jupyter 打开、运行课件(步骤④)。**理解了这条主线,后面所有细节都有地方挂靠。
**图 1 | Miniconda 与 Jupyter 协作全景:**Miniconda 在后台管理多个互不干扰的环境;当从 d2l 环境启动 Jupyter 时,它的内核(Kernel)就拥有该环境的全部库,浏览器只是与内核交互的前端界面。
第一部分 Miniconda 是什么:环境、包与 Python 版本管理
1.1 先讲痛点:不装它,你迟早会掉进"依赖地狱"
要懂一个工具,先懂它消灭的痛苦。
假设你不用 conda,直接在系统里装了一个 Python,然后 pip install xxx 装各种库。三个月内你几乎必然遇到下面这些事:
痛点一:两个项目要同一个库的不同版本。
你上半年做的项目 A 依赖 numpy 1.x,下半年新项目 B(比如新版 PyTorch)要求 numpy 2.x。numpy 2.x 有破坏性改动,装了新的,老项目直接崩。一台机器、一个 Python,同一时刻只能装一个 numpy 版本------你被迫在"做新项目"和"维护老项目"之间反复卸载、重装,这就是版本冲突。
痛点二:依赖是一张网,不是一条线。
你装一个 torch,它背后又依赖一堆别的包(特定版本的 typing-extensions、sympy、networkx、filelock......)。这些"包的包"叫依赖(dependency) 。手动管理几十上百个互相咬合、还有版本上下限的包,人脑是扛不住的,这叫依赖地狱(dependency hell)。
痛点三:"在我电脑上明明能跑啊?"
你把代码发给同学,他一跑就报错 ModuleNotFoundError 或版本不兼容------因为他电脑上没有和你一致的那套库。科研、团队协作、部署上线,处处是这个问题。本质是运行环境无法被精确复现。
痛点四:Python 版本本身也会打架。
有的老项目只能跑在 Python 3.8,新框架要求 3.10 及以上,而操作系统自带的往往是更新的版本(例如较新的 Python 3.13/3.14,许多科学计算、深度学习库尚未及时发布对应的预编译安装包,强行安装很容易失败)。开发者不可能为每个项目反复卸载、重装 Python 本体。
Miniconda 的核心价值,就是用"虚拟环境"一次性根治这四类问题。
1.2 什么是 conda 虚拟环境(virtual environment):给每个项目一间独立厨房
所谓虚拟环境(virtual environment),本质上就是一个独立的文件夹,里面装着一份特定版本的 Python 解释器 + 一堆只属于这个环境的第三方包。激活哪个环境,命令行就用哪个环境的 Python 和包,环境之间在文件层面互相隔离。
于是上面的痛点全部化解:
-
给项目 A 建环境
envA,里面 numpy 1.x;给项目 B 建环境envB,里面 numpy 2.x。同时存在、随时切换、互不影响。 -
每个环境里的依赖网由 conda/pip 自动解析安装,不用你手算。
-
环境可以"导出成一张清单文件",别人拿到清单一条命令复刻出一模一样的环境,复现问题解决。
-
想装几个 Python 版本就建几个环境:
env38用 3.8、d2l用 3.10,互不干扰,也完全不碰系统自带的 3.14。
这就是为什么课程第一步让你装 Miniconda,而不是直接用系统 Python。
**图 2 | 是否使用虚拟环境的对比:**上图是所有项目共用一个 Python 的结果------新版库覆盖旧版、老项目随时崩溃;下图是 conda 的做法------每个项目一间独立环境,各用各的版本、互不干扰。
1.3 一堆名词一次厘清:Conda / Anaconda / Miniconda / pip / venv / conda-forge
这几个词是初学者最大的混淆源,一次讲清。
先用一张表快速区分这六个高频术语,再逐条展开详解:
| 术语 | 英文 / 全称 | 一句话定义 |
|---|---|---|
| conda | Conda | 跨语言、跨平台的包管理器 + 环境管理器 + Python 版本管理器,是一个命令行程序 |
| Anaconda | Anaconda Distribution | 内置 conda、并一次性预装数百个数据科学包的"全家桶"发行版,体积达数 GB、较臃肿 |
| Miniconda | Miniconda | 只含 conda 与一个基础 Python 的最小发行版,按需装包、干净轻量,本教程选用 |
| pip | Pip Installs Python | Python 官方包管理器,从 PyPI 仓库安装 Python 包,包最全、更新最及时 |
| venv | virtual environment | Python 自带的轻量虚拟环境工具,不能切换 Python 版本、也不管理非 Python 二进制库 |
| channel / conda-forge | software channel | conda 的软件下载源;conda-forge 是社区维护、包最全最活跃的源 |
① conda
conda 是一个跨语言、跨平台的"包管理器 + 环境管理器",是一个命令行程序。它能干三件事:装包(含 Python 之外的底层二进制库)、建/删/切换环境、安装不同版本的 Python 本体。
② Anaconda
Anaconda 是一个"全家桶发行版":它内置 conda,并且一次性预装了几百个数据科学常用包(numpy、pandas、scipy、jupyter、matplotlib......上 GB 体积)。优点是开箱即用,缺点是臃肿、装了大量你用不到的东西、后续容易出现包冲突,安装包好几个 G。
③ Miniconda
Miniconda 是"最小发行版":**它只带 conda 本身 + 一个基础 Python + 少量必需组件(约几百 MB),其它包需要什么才装什么。**干净、轻、可控,可在 Miniconda 官方下载页 获取。这也是本教程推荐 Miniconda 而非 Anaconda 的原因------从一个干净环境开始,按需精确安装。
一句话:Anaconda 和 Miniconda 都自带 conda;区别只是有没有帮你预装那一大堆包。做深度学习推荐 Miniconda,干净省事。
④ pip
pip 是 Python 官方的包管理器,专门从 PyPI (Python Package Index,Python 官方包仓库,见 pypi.org)安装 Python 包。conda 能安装 Python 本体和一些底层 C/C++ 库,pip 则能安装 PyPI 上最全、最新的 Python 包(像 d2l、最新版 torch 通常用 pip 安装更及时)。二者可以配合,最佳实践见 1.6。
⑤ venv / virtualenv
Python 自带的轻量虚拟环境工具(python -m venv)。它也能做环境隔离,但只能基于已有的某个 Python 版本建环境、不能帮你安装别的 Python 版本、也不管非 Python 的二进制库。conda 是它的"超集式替代",功能更强,尤其在数据科学领域。课程统一用 conda,你就不用再学 venv。
⑥ channel 与 conda-forge
conda 下载包的"软件源"叫 channel;默认源在国外、国内访问较慢,conda-forge 是社区维护、包最全最活跃的一个源。课程中提到的"国内换 conda/pip 镜像源提速",就是把下载地址换成清华 TUNA、中科大等国内镜像(可参考 清华 Anaconda 镜像使用帮助),具体命令见 1.5。
1.4 Miniconda 到底能做什么:能力清单逐项展开
能力 1:一台机器装任意多个 Python 版本并秒级切换。
建环境时直接指定版本:conda create -n py38 python=3.8、conda create -n d2l python=3.10。想进哪个就 conda activate 哪个,退出用 conda deactivate。系统 Python 完全不受影响。
能力 2:创建相互隔离的项目环境。
每个课程、每个项目、每个实验各开一个环境,彻底杜绝"装一个库搞崩另一个项目"。环境玩坏了?删掉重建即可,主机毫发无伤,这是隔离带来的"安全感"。
能力 3:一键安装/更新/卸载成百上千的包,并自动解析依赖。
conda install numpy pandas 或 pip install torch,管理器会自动把它们依赖的其它库按兼容版本配齐,不用你操心。
能力 4:能安装"非 Python"的底层库(conda 的独门优势)。
像高性能线性代数加速库 MKL/OpenBLAS、图像处理库、CUDA(NVIDIA 的 GPU 并行计算平台)相关运行库、C++ 编译器等,conda 都能用预编译二进制方式装好,不需要在本机自行编译------这在 Windows 上尤其省事(否则安装部分科学计算库还需额外安装 Visual Studio 编译器)。
能力 5:环境的"导出---复刻",保证可复现。
把某环境的完整清单导出成 environment.yml(conda)或 requirements.txt(pip),换台电脑、给同学、上服务器,一条命令还原出一模一样的环境。这是科研和工程协作的基石。
能力 6:跨平台、跨语言。
同一套 conda 命令在 Windows / macOS / Linux 上几乎一致;它不只服务 Python,也能管 R、Julia、C++ 等环境。
能力 7:与 Jupyter 无缝配合,做到"一个环境一个内核"。
每个 conda 环境可以注册成 Jupyter 里的一个"内核(Kernel)",你在 Notebook 界面上就能切换"这份笔记本用哪个环境跑",第三部分细讲。
1.5 Miniconda 动手命令手册(Windows 重点,含你会踩的坑)
下面按真实使用顺序给出一套命令。**约定:**命令行提示符前出现 (d2l) 前缀,代表当前已处于名为 d2l 的环境内。
(1)安装后的一次性初始化(Windows 上最容易卡的一步)
装好 Miniconda 后,在 Anaconda Prompt 里 conda 是直接可用的;但如果你想在 PowerShell / VSCode 终端里用,需要初始化一次:
conda init powershell
然后关闭并重新打开终端。如果重开后 PowerShell 报红字"无法加载文件......因为在此系统上禁止运行脚本",这是 Windows 默认的脚本执行策略挡住了,执行下面这条(只对当前用户生效,安全)再重开终端:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
成功标志:命令行最前面出现 (base),表示当前处在 conda 的基础环境。
(2)环境的增、删、查、切换
# 新建一个叫 d2l、Python 版本为 3.10 的环境(-y 表示自动确认)
conda create -n d2l python=3.10 -y
激活(进入)环境
conda activate d2l # 之后行首变成 (d2l)
退出当前环境,回到 base
conda deactivate
列出本机所有环境(带 * 的是当前所在环境)
conda env list
删除某个不想要的环境(先退出它再删)
conda env remove -n 环境名
(3)包的装、更、删、看、搜
# 先确保在目标环境里!
conda activate d2l
用 conda 装包
conda install numpy pandas matplotlib -y
用 pip 装包(PyPI,包最全;深度学习课主要用它装 torch、d2l)
pip install torch torchvision # 你是 Intel 核显,这样装到的就是 CPU 版
pip install d2l
查看当前环境装了哪些包
conda list # 或 pip list
更新某个包 / 更新 conda 自己
conda update numpy
conda update -n base conda
卸载包
conda remove 包名 # 或 pip uninstall 包名
搜索某个包有哪些可装版本
conda search numpy
(4)国内换镜像源提速(下载慢必看)
conda 换清华源(一次性配置,之后所有 conda 下载走国内):
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --set show_channel_urls yes
pip 临时用清华源(在某条 pip 命令后加 -i 即可,最简单):
pip install d2l -i https://pypi.tuna.tsinghua.edu.cn/simple
想让 pip 永久默认走国内源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
(5)导出与复刻环境(可复现)
# 导出:在已配好的环境里生成清单文件
conda env export > environment.yml # conda 风格全量清单
pip freeze > requirements.txt # pip 风格清单
复刻:别人拿到 environment.yml 后,一条命令建出同样环境
conda env create -f environment.yml
拿到 requirements.txt:先建并激活环境,再
pip install -r requirements.txt
(6)清理缓存、释放空间
conda 下载的安装包会留缓存,用久了占几个 G,定期清理:
conda clean -a -y
1.6 Miniconda 最佳实践与常见坑(务必扫一眼)
-
不要往 base 里乱装项目包。 base 只放 conda 自身,保持干净;每个项目/课程单独建环境。这是用 conda 最重要的一条纪律。
-
一个项目一个环境,环境名见名知意 (如
d2l、nlp、quant),别都叫test。 -
conda 和 pip 可以混用,但优先先用 conda 装、再用 pip 补;同一环境里尽量别反复来回混装同一批包,减少冲突概率。深度学习场景常见且推荐的做法是:用 conda 建环境和装 Python,用 pip 装 torch/d2l。
-
Python 版本别盲目追新。 你系统的 3.14 太新,科学计算库的预编译包往往滞后,所以课程环境固定在成熟稳定的 3.10(或 3.11),兼容性最好。
-
环境路径、项目路径尽量别含中文和空格(比如别放在"学习资料\动手学深度学习"这种目录),部分底层库在中文/空格路径下会出诡异错误。
-
装包前先确认自己在对的环境里 (看行首是不是
(d2l))。新手 90% 的"明明装了却说找不到模块",都是因为装在了 A 环境、却让 B 环境的 Python 去运行。 -
环境坏了别硬救,删了重建最快,这正是隔离的意义。
第二部分 Jupyter Notebook 是什么:交互式笔记本与内核 Kernel 详解
2.1 先对比:写代码到底有哪几种"姿势"
理解 Jupyter,先看它和别的方式差在哪:
-
脚本(.py 文件):把一大段程序写完,一次性整体运行,错了再改、再整体跑。适合"成品软件、工程代码"。
-
IDE(PyCharm / VSCode):功能齐全的开发工厂,适合写大型项目、调试、工程化。
-
REPL(在命令行输入 python 后出现的 >>> 交互提示符):能一行行交互,但关闭即丢失,无法排版做笔记、也无法保留图形。
-
Jupyter Notebook :把"逐行交互的即时反馈"和"可长期保存、可图文混排的文档"合二为一。 一个文件里既有代码、又有文字说明、公式、图片、运行结果,而且代码可以一格一格地跑,结果直接嵌在代码下面。
它特别契合一类工作:你不知道答案、需要边试边看、反复探索,并最终把探索过程讲清楚------数据分析、机器学习、科研实验、教学、学习笔记,全是这种形态。这也是为什么几乎所有 AI/数据课程(包括李沐这门)都用它授课。
2.2 核心概念:Notebook、单元格 Cell、内核 Kernel
① Notebook(.ipynb 文件)
一份 Jupyter 笔记本就是一个 .ipynb 文件(ipynb 是 IPython Notebook 的缩写,承袭自其前身 IPython)。它以 JSON 格式保存你写入的全部内容,包括代码、文字,以及每次运行留下的输出结果(表格、图形都包含在内),因此把文件发给别人时,对方即使不运行也能看到你跑出的结果。
② 单元格 Cell
Notebook 由一个个"格子"堆叠而成,主要两种:
-
代码格(Code):写可执行 Python,运行后输出直接显示在格子下方。
-
Markdown 格(Markdown) :写说明文字,支持标题、列表、表格、LaTeX 数学公式(比如 y=Wx+by=Wx+b)、图片、链接。
代码与说明交替排列,就构成了一份"可阅读、可运行、可复现"的图文报告,这种范式叫文学化编程(literate programming)。
③ 内核 Kernel
真正执行 Python 代码的后台进程叫内核。关键认知:浏览器只是"前端界面",真正算东西的是后台那个 Kernel 进程。 这个 Kernel 用哪个 Python,就由你启动 Jupyter 时所在的 conda 环境决定(这就是为什么必须先 conda activate d2l 再启动 Jupyter,第三部分细讲)。
④ 名字与家族
Jupyter = Ju (lia) + Pyt hon + R,寓意它支持多种语言;装上对应语言的 kernel,它不止能跑 Python。常见家族成员:
-
Jupyter Notebook:经典的单文档笔记本界面(课程常用,简单)。
-
JupyterLab:新一代集成界面,多标签、能并排打开多个 notebook、有文件浏览器和扩展,更像 IDE,用法和 Notebook 相通。
-
VS Code 里的 Jupyter :直接在 VSCode 中打开
.ipynb,体验更工程化。三者笔记本文件完全通用,学会一个就会用其它。
2.3 Jupyter 到底能做什么:能力全景
能力 1:逐格运行、即时反馈,变量在内存里常驻。
跑完一格,里面定义的变量、加载的数据、训练好的模型都留在内存里,下一格直接接着用,不用从头重跑。这对"加载一次大数据集、然后反复做不同实验"极其高效------数据加载可能要几分钟,之后每个小实验都是秒出结果。
能力 2:代码 + Markdown + 公式 + 图片混排,做成"会跑的文档"。
你可以先写一段"本节我们要实现线性回归,公式是......",再放代码实现,再贴运行出的图,再写结论。学习笔记、实验报告、教学课件、技术博客一篇成型。GitHub 能直接渲染 .ipynb,很多教程、论文复现、Kaggle 竞赛方案都是以 notebook 形式分享的。
能力 3:极其丰富的"富输出"。
-
表格数据(pandas DataFrame)直接渲染成带样式的表格;
-
matplotlib/plotly 画的图直接内嵌 在格子下面,
%matplotlib inline后无需弹窗; -
还能输出 HTML、音频、视频、甚至可交互控件(ipywidgets:拖滑块、点按钮实时改参数看曲线变化)。
能力 4:魔法命令(Magic Commands),探索效率倍增。 以 % 或 %% 开头:
%timeit sum(range(1000000)) # 自动多次运行,精确测一段代码耗时
%%timeit # 两个%表示作用于整个格子
total = 0
for i in range(1000000):
total += i
%run another_script.py # 在 notebook 里运行一个外部 .py 文件
%who / %whos # 查看当前内存里有哪些变量
%pwd / %ls # 查看当前目录/文件(等价于系统命令)
!pip list # 以 ! 开头直接执行系统命令,结果回到 notebook
%matplotlib inline # 图形内嵌显示
%load_ext autoreload # 配合 autoreload,改外部模块自动重载
深度学习里你会常用 %timeit 对比两种实现谁快、用 !pip install xxx 当场补装包。
能力 5:数据探索与可视化(EDA,Exploratory Data Analysis,探索性数据分析)的最佳载体。
读入数据 → 查看样例 → 统计缺失 → 画图 → 发现问题 → 清洗 → 再看,整条探索链路一格一格推进、处处留痕,是数据分析师的主力工作方式。
能力 6:深度学习/机器学习的"调试显微镜"。
训练神经网络最怕黑箱。在 notebook 里你可以:打印每层张量的形状(shape)、查看梯度、把 loss 下降曲线实时画出来、单独测试一个算子的输出、跑一个 batch 看看数据对不对。李沐课程用 notebook,正是为了让你"每一步都看得见",而不是跑一个黑盒脚本干等结果。
能力 7:教学、演示、可复现研究。
老师把"讲解 + 可运行代码 + 结果"做成 notebook 发给你,你可以边看边改参数边运行,把"听课"变成"动手实验"。这是 d2l 课程的核心教学法。
能力 8:多语言内核。
装上 R、Julia、Bash 等对应 kernel,同一个界面能跑多种语言。
能力 9:远程/云端运行(深度学习真正的刚需)。
Jupyter 是"浏览器前端 + 后端 Kernel"的架构,意味着后端 Kernel 可以跑在一台远程 GPU 服务器上,你在自己笔记本的浏览器里写代码,计算发生在远端。这就是为什么云 GPU、公司集群、实验室服务器几乎都用 Jupyter/JupyterLab 作为入口。你现在先用本机 CPU 入门,将来上 GPU 云服务器时,这套操作完全通用。
能力 10:庞大的生态。
-
nbconvert:把 notebook 导出成 HTML、PDF、Python 脚本、幻灯片; -
nbviewer:在线查看 notebook;
-
Binder / Google Colab / Kaggle Notebook / 天池 DSW :在线托管运行 notebook,无需本地装环境(Google Colab 还提供免费 GPU),本质都是 Jupyter 生态的延伸;
-
海量扩展(插件)实现目录、变量检查器、代码折叠、调试器等。
2.4 Jupyter 界面与操作手册
(1)启动(务必先激活环境)
conda activate d2l # 先进入装了 torch/d2l/jupyter 的环境
jupyter notebook # 经典界面,会自动弹出浏览器
# 或
jupyter lab # 新一代界面,推荐,功能更强
启动后终端会显示一个本地网址(形如 http://localhost:8888/?token=...),浏览器打开就是工作界面。这个终端窗口不能关 (它是后端服务),用完回到终端按 Ctrl + C 两次停止。
工作目录:在哪个文件夹下执行启动命令,Jupyter 看到的就是哪个目录。建议先
cd到放课件的文件夹再启动,这样能直接看到课件。
(2)两种模式 + 必背快捷键(效率关键)
Notebook 有两种键盘模式:
-
编辑模式(Edit) :格子边框绿色 ,正在往里打字,按
Esc退出到命令模式。 -
命令模式(Command) :格子边框蓝色/灰色 ,快捷键操作格子本身,按
Enter进入编辑。
最高频快捷键(命令模式下,除特别说明):
| 快捷键 | 作用 |
|---|---|
Shift + Enter |
运行当前格,并跳到/新建下一格(最高频,记住这一个就能用) |
Ctrl + Enter |
运行当前格但停在原地 |
Alt + Enter |
运行当前格并在下方插入新格 |
A / B |
在上方(Above)/下方(Below)插入新格 |
D D(连按两次 D) |
删除当前格 |
Y / M |
把格子切成代码(Y)/ Markdown(M) |
C / X / V |
复制 / 剪切 / 粘贴格子 |
Z |
撤销删除格子 |
↑/↓ 或 K/J |
在格子间移动 |
Tab(编辑模式) |
代码补全 / 查看对象有哪些方法 |
Shift + Tab(编辑模式) |
光标停在函数上,查看它的参数说明(很实用) |
H |
调出全部快捷键帮助 |
Jupyter Notebook 常用快捷键速查表
下面把命令模式与编辑模式下最常用的快捷键整理成一张速查表,方便随时查阅。命令模式下按 H 也能在界面里调出完整帮助。
| 模式 | 快捷键 | 作用 |
|---|---|---|
命令模式 (按 Esc 进入) |
Shift + Enter |
运行当前格,并跳到/新建下一格(最高频) |
命令模式 (按 Esc 进入) |
A / B |
在上方(Above)/下方(Below)插入新格 |
命令模式 (按 Esc 进入) |
M / Y |
把当前格切换为 Markdown(M)/ 代码(Y) |
命令模式 (按 Esc 进入) |
D D(连按两次 D) |
删除当前格 |
命令模式 (按 Esc 进入) |
C / X / V |
复制 / 剪切 / 粘贴格子 |
命令模式 (按 Esc 进入) |
Z |
撤销删除格子 |
命令模式 (按 Esc 进入) |
↑/↓ 或 K/J |
在格子间上下移动 |
命令模式 (按 Esc 进入) |
H |
调出全部快捷键帮助 |
编辑模式 (按 Enter 进入) |
Shift + Enter |
运行当前格,并跳到/新建下一格 |
编辑模式 (按 Enter 进入) |
Ctrl + Enter |
运行当前格但停在原地 |
编辑模式 (按 Enter 进入) |
Tab |
代码补全 / 查看对象有哪些方法 |
编辑模式 (按 Enter 进入) |
Shift + Tab |
光标停在函数上,查看它的参数说明(很实用) |
(3)菜单里几个保命功能
-
Kernel → Restart(重启内核):清空内存里所有变量,从头来。
-
Kernel → Restart & Run All(重启并从头运行全部):交作业/保存前必做,用来验证"从头到尾一气呵成能跑通"。
-
Kernel → Interrupt(中断,■ 按钮):代码跑飞/死循环时立刻停住,不用关页面。
-
保存:****
Ctrl + S,Jupyter 也会定时自动存 checkpoint。
2.5 Jupyter 常见坑与最佳实践
-
"运行顺序陷阱"(初学者头号困惑)。 每个代码格左侧有
In [序号]:,这个序号是你实际运行的先后次序,不是格子从上到下的位置 。如果你上下来回乱点、改了上面的变量又没重跑,结果会"看起来不符合代码顺序",因为内存里残留着旧变量。根治办法:菜单 Kernel → Restart & Run All,让它严格从上到下跑一遍。 判断一份 notebook 是否干净可信,就看序号是不是大致递增、能否一次 Run All 跑通。 -
Kernel 必须和环境对应。 你在
d2l环境装了 torch,就必须用d2l的内核运行 notebook,否则import torch报错。具体怎么绑定见第三部分。 -
别把 Notebook 当大型软件工程工具。
.ipynb本质是 JSON,难做代码版本对比(git diff 很乱)、难写复杂调试、不利于模块化。经验法则:探索、实验、讲解、画图用 Notebook;当代码成熟、要做成可复用的模块/系统/部署时,把稳定逻辑抽成.py文件 (notebook 里可以import自己的 .py 模块)。两者配合,而非互相替代。 -
善用 Markdown 格写"为什么",而不只是堆代码。 未来的你会感谢现在写下思路和结论的自己。
-
长时间训练别只依赖本地 notebook ,注意保存;重要结果及时导出,必要时用
nbconvert生成 HTML/PDF 留档。 -
数据和工程文件路径用相对路径,并在固定工作目录启动,避免"找不到文件"。
第三部分 关键:Jupyter 如何使用 conda 环境(内核 Kernel 绑定)
单独看都懂了,真正动手时 90% 的卡点出在"两者怎么连起来"。这一部分把缝给你焊死。
3.1 为什么必须先激活环境再启动 Jupyter(完整因果链)
-
conda 环境决定"用哪个 Python、能 import 哪些库"。
-
Jupyter 的 Kernel 是一个具体的 Python 进程,它从某个 conda 环境启动,就拥有那个环境的全部库。
-
所以正确顺序永远是:先
conda activate d2l→ 再在这个已激活的环境里 ****jupyter notebook。这样启动起来的内核天然就是 d2l 环境的,import torch、import d2l才找得到。
如果你在 (base) 或别的环境下启动了 Jupyter,却打开 d2l 课件,就会报"找不到 torch/d2l"------不是没装,是内核用错了环境。
3.2 标准安装五步走(课程 4 步的完整展开,以 Windows + CPU 为例)
**图 3 | 环境搭建五步流程:**先建立并激活环境,再在环境内装包,最后才启动 Jupyter,顺序不能乱;可对照下方命令逐行执行。
# ① 装好 Miniconda 并初始化(一次性)
conda init powershell # 之后重开终端;必要时配执行策略,见 1.5
② 建专用环境(一次性)
conda create -n d2l python=3.10 -y
conda activate d2l
③ 在该环境里装 jupyter、框架、课程包
pip install jupyter jupyterlab ipykernel # notebook 运行所需
pip install torch torchvision # Intel 核显 → CPU 版,无需 CUDA
pip install d2l # 课程工具包
下载慢就给 pip 命令末尾加: -i https://pypi.tuna.tsinghua.edu.cn/simple
④(推荐)把 d2l 环境注册成 Jupyter 里可选的内核
python -m ipykernel install --user --name d2l --display-name "Python (d2l)"
⑤ 进入放课件的文件夹,启动
cd 你的课件目录
jupyter lab # 或 jupyter notebook
之后每次上课只需三步:
conda activate d2l
cd 你的课件目录
jupyter lab
3.3 多环境多内核:一份界面,随意切换
当你以后有好几个 conda 环境(d2l、nlp、数据分析......),给每个环境都执行一次 ipykernel install(注意 --name 取不同名字),那么在同一个 Jupyter 界面右上角/Kernel 菜单里,就能给不同 notebook 指定不同环境内核,甚至同一份 notebook 随时切换内核对比运行。这就是 conda(管环境)和 jupyter(管交互)分工协作的最终形态。
3.4 在 VS Code 里用(可选进阶)
装好 VSCode 的 Python/Jupyter 扩展后,直接双击打开 .ipynb,右上角选择解释器时选到 d2l 环境对应的 python.exe,效果等同选内核,同时还能获得更好的调试、git 对比体验。入门阶段先用经典 JupyterLab 即可,不必急着折腾。
第四部分 把视野拉大:它们在"数据科学/AI 技术栈"里的位置
学到这里,你可能会问:学完这门课,这套东西还能用在哪?给你一张技术栈地图,看清每个零件的位置:
-
环境层:Miniconda/conda(也可能是 Docker、venv)------解决"用什么运行时和库、怎么隔离与复现"。
-
语言运行层:Python(解释器本身,由 conda 帮你装和切换版本)。
-
计算/算法层 :numpy(数值计算地基)、pandas(表格数据)、scikit-learn(传统机器学习)、PyTorch/TensorFlow(深度学习)、d2l(课程封装工具)。
-
交互与表达层 :Jupyter(探索、实验、可视化、教学、报告)。
-
可视化与呈现层:matplotlib/plotly/seaborn 出图,nbconvert 导出报告,配合 Markdown/LaTeX 表达。
-
协作与部署层 :git 版本管理、远程 GPU 服务器/云、Docker 镜像、最终把成熟代码做成
.py工程或服务上线。
**Miniconda 处在最底层(第 1 层),Jupyter 处在第 4 层,一个托底、一个面向使用者,中间隔着真正干活的算法库。**课程要求"先装底层环境、最后启动交互界面",顺序正与这张自下而上的地图一致。
**图 4 | 数据科学 / AI 技术栈六层地图:**高亮的第 1 层(Miniconda)托底、第 4 层(Jupyter)面向使用者,中间是真正干活的计算库。
再横向看几个"亲戚/替代品",帮你建立判断:
-
Google Colab / Kaggle Notebook / 天池 / Binder :本质是"云端预先配好环境的 Jupyter",打开浏览器就能运行、还常提供免费 GPU,免去本地安装(可访问 Google Colab)。优点是零配置、有免费算力;缺点是会话会断开、环境不持久、数据上传受限。入门阶段用本地 conda+Jupyter 理解环境原理,需要免费 GPU 或快速跑 demo 时用 Colab,二者互补。
-
Docker:比 conda 更彻底的环境隔离(连操作系统层都打包),工程部署常用;科研/学习阶段 conda 足够,更轻。
-
PyCharm / VSCode :写大型工程项目更强;Jupyter 强在探索与表达。成熟团队通常"Jupyter 做实验验证想法 → 验证通过后迁到
.py+ IDE 做工程化"。
不同职业怎么用它们,给你具体画面:
-
数据分析师:conda 建分析环境,Jupyter 里读业务数据、清洗、做 EDA、出图表和结论报告。
-
算法/机器学习工程师:Jupyter 里快速试模型、调参、看指标曲线,成熟后迁移成工程代码;用 conda 复现实验环境。
-
深度学习研究员:在本地或远程 Jupyter 中逐格搭建网络、观察张量与 loss,用 conda 锁定 torch/CUDA 版本以保证结果可复现。
-
科研工作者/学生:把实验过程、公式、图表、结论写成 notebook,导出 PDF 当附录,或传到 GitHub 供同行复现。
-
量化、金融、生物信息等:同样是"conda 隔离专业库 + Jupyter 交互式研究"的模式,跨行业通用。
也就是说,Miniconda + Jupyter 不是只服务于这一门课的"一次性工具",而是整个数据科学/AI 行业通用、会伴随你整个职业生涯的两项基础基本功。 现在花时间搞懂,回报率极高。
第五部分 Windows 安装实战:五步行动清单与通关验证(CPU 版)
下面以一套典型的入门环境为例:**Windows 10/11、Intel 核显(无独立 N 卡,安装 CPU 版、无需 CUDA)、系统已自带较高版本 Python(另建 3.10 环境,不影响系统 Python)、可使用 winget。**其他系统或配置思路完全一致,按实际情况替换对应版本即可。
第 1 步:安装 Miniconda。
方式一(推荐):在 Windows 上可用系统自带的 winget 一行安装,macOS/Linux 用对应包管理器;方式二(通用、手动):到 Miniconda 官方下载页 下载对应系统的 64 位安装包,按向导一路下一步即可(是否加入 PATH 可保持默认,之后用 Anaconda Prompt 或执行 conda init,详见 1.5)。
第 2 步:初始化并建课程环境。
conda init powershell → 重开终端 → conda create -n d2l python=3.10 -y → conda activate d2l。
第 3 步:装齐运行所需的包。
pip install jupyter jupyterlab ipykernel
pip install torch torchvision
pip install d2l
(慢就每条 pip 末尾加清华源 -i https://pypi.tuna.tsinghua.edu.cn/simple)
第 4 步:注册内核、下载课程 notebook、启动验证。
python -m ipykernel install --user --name d2l --display-name "Python (d2l)"
jupyter lab
在打开的网页里新建一个 notebook,逐格运行下面三行做"通关验证":
import sys, torch, d2l
print(sys.version) # 应显示 3.10.x,而不是 3.14
print(torch.__version__) # 能打印版本号即说明 PyTorch 装好
x = torch.ones(3, 3)
print(x) # 能输出一个 3x3 全 1 张量,说明 CPU 计算正常
成功标志:三格都不报错、Python 显示 3.10、张量正常打印。到这一步,课程要求的整套环境就已彻底跑通,可以开始下载 d2l 课件逐章学习。
学习路径建议 :先用经典课件把"Shift+Enter 逐格运行、改参数立刻看变化"的手感建立起来;每学完一节,用 Kernel → Restart & Run All 确认自己能从头跑通;遇到"找不到模块"先检查右上角内核是不是 Python (d2l);遇到结果诡异先 Restart & Run All。这两个动作能解决你大半的新手问题。
常见问题 FAQ(新手高频问题速查)
下面汇总安装与使用中搜索频率最高的问题,每条答案均可独立查阅。
问:Miniconda 和 Anaconda 到底该装哪个?
答:深度学习、科学计算场景推荐 Miniconda。两者都自带 conda,区别在于 Anaconda 一次性预装了数百个包、体积达数 GB 且容易产生包冲突;Miniconda 只含 conda 和一个基础 Python,需要什么再装什么,干净、轻量、可控。
问:conda 和 pip 有什么区别,能一起用吗?
答:conda 是跨语言的环境与包管理器,能安装 Python 本体和非 Python 的底层二进制库;pip 是 Python 官方包管理器,只从 PyPI 安装 Python 包,但包最全、最新。二者可以配合,推荐做法是先用 conda 建好环境、装好 Python,再用 pip 补装 torch、d2l 等包,同一环境内尽量避免对同一批包反复混装。
问:什么是虚拟环境,为什么一定要用?
答:虚拟环境是一个独立文件夹,内含特定版本的 Python 解释器和只属于该环境的第三方包。不同项目使用各自的虚拟环境,可以同时依赖同一个库的不同版本而互不冲突,也能把环境导出成清单文件、在别的电脑上一键复刻,从根本上解决"版本冲突"和"在我电脑上能跑"的复现问题。
问:Jupyter 运行时报 ModuleNotFoundError(找不到已安装的包)怎么办?
答:九成原因是"包装在了 A 环境,Jupyter 内核却用的是 B 环境"。先确认启动 Jupyter 前已执行 conda activate 目标环境;若仍报错,在该环境内执行 python -m ipykernel install --user --name 环境名 注册内核,并在 Notebook 右上角 Kernel 菜单中选中该内核,然后重启内核即可。
问:怎么让 Jupyter Notebook 使用指定的 conda 环境?
答:两种方式。最简单的是先 conda activate 环境名,再在该环境中执行 jupyter lab,启动的内核天然属于该环境;更通用的是在每个环境中安装 ipykernel 并执行 python -m ipykernel install --user --name 环境名 --display-name "Python (环境名)",之后即可在 Jupyter 的 Kernel 菜单里为任意 Notebook 切换内核。
问:Notebook 的运行结果和单元格从上到下的顺序对不上怎么办?
答:单元格左侧的 In 序号 记录的是"实际运行次序"而非物理位置,来回运行会让内存残留旧变量。解决办法是菜单选择 Kernel → Restart & Run All,让整本 Notebook 严格从上到下重新运行一遍;判断一份 Notebook 是否干净可信,就看它能否一次 Run All 跑通。
问:Windows 执行 conda init 后,PowerShell 报"无法加载文件、禁止运行脚本"怎么办?
答:这是 Windows 默认脚本执行策略拦截。以当前用户身份执行 Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser,再关闭并重新打开终端即可;也可以直接使用随 Miniconda 安装的 Anaconda Prompt,无需该设置。
问:国内下载 conda / pip 包很慢怎么办?
答:换成国内镜像源。conda 可一次性添加清华 TUNA 的 main 与 conda-forge 频道;pip 最简单的方式是在安装命令后追加 -i https://pypi.tuna.tsinghua.edu.cn/simple,也可用 pip config set global.index-url 设为默认。
问:Python 版本是不是越新越好,该选哪个?
答:不是。科学计算与深度学习库的预编译安装包通常会滞后于最新 Python,过新的版本容易装不上。学习与生产都建议选择成熟稳定版本(如 Python 3.10 或 3.11),等生态适配后再升级;用 conda 可以为不同项目单独指定任意 Python 版本,不影响系统自带 Python。
问:没有 NVIDIA 独立显卡(GPU)能学深度学习吗?
答:可以。入门阶段的网络规模小,CPU 完全可以跑通课程示例、理解原理;此时直接安装 CPU 版 PyTorch 即可,无需安装 CUDA。等后续需要训练大模型时,再配备 NVIDIA 显卡或使用带免费 GPU 的 Google Colab、云 GPU 服务器,操作方式与本地 Jupyter 完全一致。
问:Jupyter Notebook、JupyterLab、VS Code 里的 Jupyter 怎么选?
答:三者的 .ipynb 笔记本文件完全通用。Jupyter Notebook 是经典单文档界面、最简单;JupyterLab 是新一代多标签集成界面、功能更强,新手直接用 JupyterLab 即可;习惯在 VS Code 中开发的人可安装 Python/Jupyter 扩展后直接打开 .ipynb,调试与版本管理体验更好。
结语:两句话记住一辈子
-
Miniconda(conda)是"环境与依赖的管家":让每门课、每个项目都有独立、干净、可复现、互不打架的 Python 和库,还能随意切换 Python 版本。它在后台托底,你平时主要在建环境、装包、切换环境时跟它打交道。
-
Jupyter 是"探索与表达的画板":让你写一段、跑一段、看一段、记一段,把代码、公式、图表、结论编织成一份既能运行又能阅读的笔记本,是数据分析与深度学习学习/研究的主力界面。
**前者负责"不出乱子、可以复现",后者负责"边做边看、讲清过程";先由 conda 准备好 d2l 环境,再让 Jupyter 用该环境的内核启动------这就是整套安装流程的本质。**按第五部分跑通那几行验证代码后,这两个工具就真正从"名词"变成了手里的"工具"。
相关资源与官方链接
本文系统梳理了 Miniconda 与 Jupyter 的原理、命令、避坑要点,以及二者在数据科学 / AI 技术栈中的定位,建议配合第五部分动手完成安装,并收藏本页以备随时查阅。