解决 Coursera C1M2_assignment 笔记本卡死与提交报错的排查方案
在处理 C1M2_assignment 时,可能会遇到所有 cell 处于 running 状态且 import 语句无法执行的情况,即便等待二十分钟或尝试重启内核、清理输出也无法恢复。
这种情况可能源于 JupyterHub 容器内的 compute pod 进程队列堵塞。当自动评测脚本或批处理任务挂起,新的 cell 将无法获得执行权限,导致状态栏持续显示 running 且终端无报错。
若等待 5-10 分钟后仍未恢复,可通过 Help → Get all help 提交工单,提供课程 C1M2、文件名 assignment.ipynb 及卡顿时间段,由后台清除 pod 任务队列。
提交时反复报错通常是自动化校验器在检查 .ipynb 文件结构。触发因素包括:
- 包含未清除的 matplotlib 图片缓存等二进制对象
- notebook 元数据中的 execution_count 不连续
- 存在 torch.distributed 或 ray 等第三方库的异步线程残留
尤其是 import tensorflow 启动的后台线程若未关闭,会导致状态快照超时。此时需执行 Kernel → Restart & Clear Outputs 并重新运行所有 cell,刷新执行上下文后再提交。
更换邮箱账号也可能引发 session 冲突,导致提交请求被路由至旧环境或加载旧账户缓存 kernel,进而引起文件权限异常或执行卡死。可以通过点击头像进入 Settings → Reset my programming environment 强制刷新,确保账户绑定到正确的容器实例。
定位问题可参考两个维度:cell 运行数秒后出现 Kernel busy 或无响应,倾向于调度器堵塞;报错信息提及 notebook metadata、invalid JSON 或 execution_count mismatch,则属于校验器拒绝。
若涉及GitHub Pages 部署,需确保文件名大小写与 URL 一致且权限正确,根目录 URL 必须提供 index 文件。针对 SEC.gov 的脚本下载,应更新 User Agent 以包含公司信息,避免被识别为未声明的自动化工具而导致请求被管理。

C1M2_assignment我也卡过,当时那个pod像死了一样。后来我把浏览器插件全关了才刷出来,那次因为这个破事我整整熬了一宿。