Python 现代开发学习笔记

常见报错与回查位置

下表从看到的现象进入。先执行中间一列的观察,再回查相应章节,不急着同时改动多处配置。

现象 先观察的对象与动作 回查位置
找不到 python 或 py -3.12 查看已安装解释器与启动器,回到环境教程选择 3.12 序言、第一章环境准备
ModuleNotFoundError 打印 sys.executable 与包路径,在当前项目重新安装或同步 第一章环境、第三章包、第六章项目安装
attempted relative import 观察是否直接启动了包内文件,改从包的上一级使用 python -m 包名 第三章模块与包入口
FileNotFoundError 查看启动目录与解析后的完整路径,核对相对路径从哪里开始 第五章路径、第十七章配置
ValueError 或拆包数量错误 保存原输入,逐步查看 split、转换和接收项数 第二章输入与拆包
TypeError、AttributeError 查看实际对象类型、调用参数与属性所在对象 第三章参数、第四章对象与属性
UnicodeDecodeError、坏 JSON 或 CSV 确认文件来源与编码,再查看第一条失败记录和原文件 第五章文本、结构化数据与异常
SQLite no such table 查看实际数据库路径与结构版本,执行该项目的初始化或迁移 第五章数据库、第十五、十七章迁移
SQLite database is locked 查看哪个事务仍在等待,检查提交、回退和连接关闭 第五章事务、第六章资源测试、第十七章整批写入
网络连接失败 看来源或服务终端是否已启动,再比较主机、端口和请求地址 第八、九章本地服务与 HTTP
HTTP 超时 区分连接、读取、写入和池等待,核对本次失败时刻 第八章超时、第九章重试与任务恢复
404、405、422 分别核对路径、HTTP 方法、字段位置与响应正文 第十二、十三章路由与校验
401、403 查看登录身份、令牌或 Cookie,再核对记录归属 第十二至十五章身份与权限
浏览器报告 CORS 在开发者工具中查看请求来源、预检和响应头 第十二章跨源,第十三章独立前端
模板列表看起来像方法 检查取的是字典键还是对象方法,例如 result['items'] 第十四章 Jinja,第十七章查询模板
Pygame 移动随帧率改变 比较实际经过时间、逻辑步数和每步位移 第十章时间、固定逻辑步与碰撞
NumPy 广播失败或结果多一维 逐项写出输入 shape,画参与运算的行列 第十一章广播,第十六章损失形状
数组修改影响另一变量 查看是否共享内存、切片得到视图还是拷贝 第二章对象绑定、第十一章视图
PyTorch 类型或设备不一致 查看批次、参数的 dtype 和 device,在相乘前比较 第十六章 Tensor、设备与模型
训练损失出现 NaN 从输入、标准化结果、前向输出到损失逐项查看 第十一章预处理,第十六章训练排错
重新加载后预测不同 核对权重、缩放、特征次序、eval() 与实际版本 第十六章检查点,第十七章模型交付
模型清单摘要不一致 对照整版目录的文件,重新取得同一份完整版本再校验 第十七章完整版本、发布与恢复
回答 JSON 解析失败或引用检查报错 分别查看字段、块编号和引用原文,保留这轮问题与检索结果 第十八章消息链与引用检查
恢复时找不到任务或没有待确认项 核对身份、数据目录、thread_id 和当前 pending,不重新提交另一份问题代替恢复 第十八章检查点与确认
端口已被占用 找到先前启动的服务终端,结束或给新服务选另一端口 第十二章服务器,第十七章进程

第十六、十七章的两个回归项目使用不同的划分过程,保存的模型各有自己的统计量与权重。核对重载结果时,比较同一个检查点或同一个版本;跨实验比较则先固定数据划分和评价方式。

笔记正文与全部题解 · Ctrl / ⌘ K