一、写在前面

作为深度学习入门的必经之路,《动手学深度学习》是绕不开的经典教材,但它的 d2l 0.17.6 版本 对依赖库版本要求极其苛刻,稍不注意就会陷入版本冲突的 “地狱循环”。这篇博客记录了我从环境搭建到成功跑通第一个训练代码的全过程,把所有踩过的坑和对应的解决方法一次性整理清楚,帮你少走弯路。

二、环境基础配置

1. 核心环境

  • Python 3.9(和 d2l 0.17.6 兼容性最好的版本)

  • 虚拟环境:torch_gpu(推荐用 venv/conda 隔离环境,避免污染全局)

  • 目标:跑通 d2l-zh 教材代码,使用 GPU 加速

2. 初始安装命令

先安装 GPU 版 PyTorch,再安装 d2l:

# 激活虚拟环境
conda activvate 环境名称

# 安装 GPU 版 PyTorch
pip install torch==2.2.2 torchvision==0.17.2 --index-url https://download.pytorch.org/whl/cu121

# 安装指定版本 d2l
pip install d2l==0.17.6 -i https://pypi.tuna.tsinghua.edu.cn/simple

三、版本冲突报错问题与合适的版本适配:

库名 版本号 说明
d2l 0.17.6 教材指定版本
jupyter 1.0.0 和 notebook 6.4.12 兼容
notebook 6.4.12 稳定老版本,无兼容性问题
traitlets 5.4.0 解决 warn () 报错
requests 2.25.1 d2l 强制要求
matplotlib 3.5.1 d2l 强制要求
numpy 1.21.5 d2l 强制要求
matplotlib-inline 0.1.6 解决 RcParams 报错

一键安装所有兼容版本的命令:

pip install d2l==0.17.6 jupyter==1.0.0 notebook==6.4.12 traitlets==5.4.0 requests==2.25.1 matplotlib==3.5.1 numpy==1.21.5 matplotlib-inline==0.1.6 -i https://pypi.tuna.tsinghua.edu.cn/simple

四、启动 Jupyter Notebook & 验证环境

1. 进入教材目录并启动:

# 进入 d2l-zh 教材文件夹,这里我在D盘
cd D:\Deeplearning\d2l-zh

# 启动 jupyter notebook
jupyter notebook

2.选择教材中的代码运行,没有报错则说明环境配置成功!

五、关于卸载 jupyterlab 的说明

很多同学会担心卸载 jupyterlab 有影响,这里明确说明:

  1. 完全不影响核心功能:我们用的是传统 jupyter notebook,和 jupyterlab 是两套独立的界面,卸载后不影响打开、运行 .ipynb 文件。

  2. 反而解决冲突:jupyterlab 的新版依赖会和老版 d2l 环境冲突,卸载后环境更干净稳定。

  3. 后续可按需安装:如果未来想体验 jupyterlab,可以单独新建虚拟环境安装,不影响当前的学习环境。

六、维护避坑指南

  1. 不要随意升级依赖库:d2l 0.17.6 是老版本,升级任何依赖都可能引发连锁冲突。

  2. 优先用国内镜像源:安装库时加上 -i https://pypi.tuna.tsinghua.edu.cn/simple,避免下载慢或失败。

  3. 虚拟环境隔离是关键:不要在全局 Python 环境安装,用 venv/conda 单独创建环境,避免影响其他项目。

  4. 忽略非关键警告:pip 偶尔会弹出不影响核心功能的依赖警告,只要能正常运行代码,就不用过度纠结。

七、写在最后

版本兼容问题是深度学习入门的第一道坎,看似繁琐,其实只要找到 “核心依赖的指定版本”,所有问题都会迎刃而解。这篇博客整理的所有报错和解决方法,都是亲测有效的实战经验,希望能帮你快速搭建好环境,把精力集中在深度学习学习上,而不是和依赖冲突死磕。

如果你也在搭建 d2l 环境时遇到了其他奇怪的报错,欢迎在评论区留言,我会帮你一起解决!

更多推荐