ML-For-Beginners Jupyter Notebook 单元格运行后不显示输出怎么排查?
2026/9/9 21:20:29 网站建设 项目流程

ML-For-Beginners Jupyter Notebook 单元格运行后不显示输出怎么排查?

【免费下载链接】ML-For-Beginners12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all项目地址: https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners

在 ML-For-Beginners 课程里打开任意 lesson 的notebook.ipynb、选中代码块点运行之后,最常见的卡点是:单元格显示已经执行,但看不到print的结果、图表或报错信息。ML-For-Beginners 的官方 TROUBLESHOOTING.md 把 "Cells are running but not showing output" 单列为一个条目,并给出了 kernel、图表显示、Jupyter server 和 VS Code 集成几类对应的处理路径。本文按"先跑通一个最小验证单元格,再按症状对号入座"的顺序,给出文档中实际支持的排查步骤;课程要求 Python 3.8 及以上并安装 Jupyter,这是排查的环境前提。

准备:用最小单元格确认"输出链路"是否通

在做任何重装、换 kernel 之前,先用一个不依赖任何数据或第三方库的单元格做基线测试。这是课程 2-Regression/1-Tools/README.md 里 "Exercise - work with a notebook" 的标准操作:

  1. 打开本课程的 notebook,例如 notebook.ipynb;
  2. 在代码块里输入print('hello notebook'),选中运行图标执行;
  3. 课程文档给出的预期输出(文档示例):
hello notebook
  • 这一步能显示输出:说明 Jupyter 服务、kernel 和渲染链路基本正常,问题多半出在原 notebook 的具体单元格内容、执行顺序或图表配置上,直接跳到图表类输出不显示一节;
  • 连最小输出都不显示:按下面的顺序继续排查。

先判断你属于哪类症状

TROUBLESHOOTING.md 把"没有输出"拆成了几个不同的现象,对应不同的处理路径,先对号再操作:

现象文档中的问题条目处理入口
单元格显示[*],还在执行中Cells are running but not showing output先等它执行完
单元格已结束但输出为空同上Restart & Run All重建输出
运行后整个 notebook 无响应、提示符卡住Can't run cells检查 Jupyter server
print 有输出但图表不出现Plots not showing in Jupyter检查%matplotlib inlineplt.show()
kernel 反复崩溃重启Kernel keeps dying or restarting逐个单元格定位 + 内存检查
在 VS Code 里 notebook 都打不开VS Code Integration扩展与解释器配置

确认单元格是否还在运行,再重启内核重建输出

按文档 "Notebook Cell Issues" 条目的顺序操作:

  1. 看单元格的执行标记:正在执行的单元格会显示[*]指示符。部分课程 notebook(例如时间序列课程要下载和处理数据的步骤)执行时间较长,先等它跑完再判断;
  2. 如果单元格已执行完仍没有输出,执行Kernel → Restart & Run All:重启 kernel 并重新运行全部单元格,让所有输出在干净的 kernel 状态下重建;
  3. 执行后逐个检查:print语句应该恢复输出;如果只有个别单元格异常,回到第 1 步单独重跑该单元格定位。

Kernel 排查:选错、缺失或无法启动

确认当前 kernel 是否正确

文档 "Kernel Issues" 给出的入口是Kernel → Change Kernel:打开后确认当前 notebook 绑定的是哪个 Python kernel,然后选择正确的 Python 版本。如果列表中缺少你正在用的环境,在已激活该虚拟环境的终端中注册:

python -m ipykernel install --user --name=ml-env

注册完成后回到 Jupyter 用Kernel → Change Kernel重新选择。

kernel 无法启动时重装 ipykernel

如果 kernel 根本起不来,按文档顺序重装并重新注册:

# Reinstall ipykernel pip uninstall ipykernel pip install ipykernel # Register the kernel again python -m ipykernel install --user

在虚拟环境里注册带显示名的 kernel

文档 "Environment and Configuration" 一节说明:包明明装好了、notebook 里却找不到,通常是 notebook 没有使用你 venv 里的 kernel。在已激活 venv 的终端中执行:

# Ensure notebook uses the correct kernel # Install ipykernel in your venv pip install ipykernel python -m ipykernel install --user --name=ml-env --display-name="Python (ml-env)"

然后按文档提示:# In Jupyter: Kernel → Change Kernel → Python (ml-env),在 Jupyter 中切换到这个 kernel。

kernel 反复崩溃、重启

文档 "Kernel keeps dying or restarting" 给出的处理顺序:

  1. Kernel → Restart
  2. Kernel → Restart & Clear Output清空输出后重来;
  3. 怀疑内存问题时参照运行缓慢与内存不足的处理一节;
  4. 逐个单元格运行(Try running cells individually),定位是哪段代码导致 kernel 崩溃。

图表类输出不显示:启用 inline 绘图并显式 show

print正常但 matplotlib 图表不出现时,文档 "Plotting Issues" 条目的解法是在代码中启用 inline 绘图并显式显示:

# Enable inline plotting %matplotlib inline # Import pyplot import matplotlib.pyplot as plt # Show plot explicitly plt.plot(data) plt.show()

课程里的 notebook 本身就是这么写的:2-Regression/4-Logistic/README.md 画 ROC 曲线的代码、7-TimeSeries/1-Introduction/README.md 加载电力数据的代码块都以%matplotlib inline开头。如果你的课程单元格缺少这两处中的任何一处(magic 或plt.show()),图表不会出现在 notebook 里。

关于文档中的示例结果:Logistic 一课中print(auc)打印出的 AUC 值、diabetes 数据集print(X.shape)(442, 10)等,都是文档示例数值,只能用来确认"输出区域能正常显示内容",不要当作固定预期结果做校验。

点 Run 完全没反应:先检查 Jupyter server

这一类现象文档单独列为 "Can't run cells - no response when clicking 'Run'",处理顺序是:

  1. 回到启动 Jupyter 的终端,确认 Jupyter server 还在运行;
  2. 刷新浏览器页面;
  3. 关闭 notebook 后重新打开;
  4. 重启 Jupyter server。

如果问题是 notebook 页面本身打不开("Jupyter won't launch in browser"),文档给了两条路:

# Try specifying the browser jupyter notebook --browser=chrome # Or copy the URL with token from terminal and paste in browser manually # Look for: http://localhost:8888/?token=...

即指定浏览器启动,或从终端复制带 token 的http://localhost:8888/?token=...地址手动粘贴到浏览器。

在 VS Code 中使用 notebook 的前置检查

如果你不是在浏览器而是在 VS Code 里打开 notebook,文档 "VS Code Integration" 针对 "Jupyter notebooks won't open in VS Code" 给出四步:

  1. 在 VS Code 中安装 Python 扩展;
  2. 安装 Jupyter 扩展;
  3. Ctrl+Shift+P→ "Python: Select Interpreter",选择正确的 Python 解释器;
  4. 重启 VS Code。

运行缓慢或内核卡死的处理

kernel 长时间没有输出、提示符一直卡在[*]时,可能不是"没输出"而是内存或性能问题。文档 "Performance Issues" 给出的手段:

  • Kernel → Restart释放内存;
  • 关闭不用的 notebook 释放资源;
  • 开发阶段用更小样本测试:df_sample = df.sample(n=1000)
  • 用 IPython magic 找耗时操作:
%time operation() # 计时单次操作 %timeit operation() # 多次运行计时

如果已经报MemoryError或 kernel 在处理数据时死亡,文档 "Common Error Messages" 给出了三类代码级处理:

# Load data in chunks for chunk in pd.read_csv('large_file.csv', chunksize=10000): process(chunk) # Or read only needed columns df = pd.read_csv('file.csv', usecols=['col1', 'col2']) # Free memory when done del large_dataframe import gc gc.collect()

其中large_file.csvcol1/col2是文档中的占位写法,替换为你自己的数据文件与列名。

验证与后续动作

排查完成后回到最小验证单元格:print('hello notebook')应再次显示hello notebook(文档示例);然后运行目标 lesson 的 notebook,确认print输出和图表(如课程文档展示过的 scatterplot、ROC 曲线)都出现在单元格下方,这一步同时验证了 kernel、inline 绘图和输出渲染三条链路。

如果按以上路径仍无法解决,按 TROUBLESHOOTING.md "Still Having Issues?" 的建议提交 issue,包含:操作系统及版本、Python/R 版本、完整报错信息(full traceback)、复现步骤、已经尝试过的手段。

【免费下载链接】ML-For-Beginners12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all项目地址: https://gitcode.com/GitHub_Trending/ml/ML-For-Beginners

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询