Skip to content

v1.8.2 · 拆分「装环境」与「启动」· 源码版(不含题库)

Choose a tag to compare

@xiaoming-kun xiaoming-kun released this 02 Oct 00:03
· 4 commits to main since this release

源码版发布包:解压双击即可用,不含题库。

这个包里有什么

  • 完整源码:后端 Python(amti/)+ 前端 React 源码(web/src/)
  • 已构建好的前端(web/dist/)—— 不用装 Node
  • 内置 LaTeX 编译器(tex/)—— 不用装 TeX Live,导出 PDF 直接能用
  • 内置 Python 安装包 + 离线依赖 wheel —— 没装 Python 的机器会自动装,且不用联网
  • demo数据/:4 道自编示例题(非真题)+ 完整考点大纲

不含什么

题库数据不在此包内(题目/、图片/、知识点.json、归档快照.json)。
要用自己的题库,按 README 把数据放进去。

界面截图也不随包发布 —— 那些图是实拍,画面里就是真题原题与答案。

怎么用(两步,各管一件事)

  1. 双击 安装环境.bat —— 只做这一次。
    自动找 Python(没有就装包里自带的)→ 建运行环境 → 装依赖 → 自检。
    已经就绪时它会直接退出、什么都不装,所以重复双击也没事。
  2. 双击 启动.bat —— 平时只用这一个。
    它只负责启动:检查环境 → 铺 demo 数据 → 起服务并打开浏览器。

两个脚本职责分开:启动.bat 里一行找 Python 的代码都没有,
缺环境就叫你先跑 安装环境.bat。以前两件事揉在一个脚本里,
任何一步出问题都只能看到同一句刷屏的话,不知道该修哪。

本版变化(v1.8.1 → v1.8.2)

拆分「装环境」与「启动」

原来根目录的 启动.bat 把五件事塞在一条流程里:
找 Python → 装 Python → 建 .venv → 装依赖 → 起服务;
而 Windows一键脚本\1-安装依赖.bat / 2-起服务.bat 又把同样一套逻辑各抄了一份,
改一处忘一处。现在同一套逻辑只有一份:

文件 职责
安装环境.bat 只管环境,一次性(已就绪就直接退出)
启动.bat 只管启动(从 11.6 KB 瘦到 2.9 KB)
Windows一键脚本\1-安装依赖.bat 4 行,转发到 安装环境.bat
Windows一键脚本\2-起服务.bat 4 行,转发到 启动.bat

修:python / python3 无限对倒

找不到可用 Python 的机器上,这几行会无限刷屏、永远停不下来:

正在用 python 建运行环境 .venv ……
(这个 Python 建不出可用的运行环境,换下一个)
正在用 python3 建运行环境 .venv ……

根因:失败黑名单 BADPY 是单值,每次失败覆盖上一次 —— python 失败后被拉黑,
轮到 python3 失败时把 python 放了,于是两者来回对倒,
永远走不到「回落去装包里自带的 Python」那一步。

三处修:

  1. 黑名单改成累积列表,用 find 判成员
    (不能用 !VAR:搜=替!:Python 路径里有冒号,那套语法会在第一个冒号处截断)
  2. 显式跳过应用商店占位程序 —— 它被调用时退出码是 0,
    于是版本检查"通过"、被当成真的 Python,直到建 venv 时才炸
  3. 加重试上限,黑名单再出岔子也绝不允许死循环

修:新装的 Python 跑不起来时,说清原因

如果系统里残留着旧的 Python 安装记录,Windows 会走「修复」而不是「安装」,
失败时只报一个看不懂的退出码 1603。现在会直接告诉用户:
这是残留记录导致的,去「应用和功能」里卸载所有 Python 再重试。

同时带上 v1.8.1 的两项

  • 中文路径下导出 PDF 必定失败 → 改成自动用 ASCII 目录联接启动引擎
  • 题目间距填裸数字(如 6)整卷编译失败 → 现在自动按 6pt 算
  • 移除「知识链路」功能

sha256: 628dd26db73a0c6b929e2b67ae3709c083b0ffdff5c15b284262703b6f6c5b53