Skip to content

Releases: xiaoming-kun/AmTiKu

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

Choose a tag to compare

@xiaoming-kun xiaoming-kun released this 02 Oct 00:03

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

这个包里有什么

  • 完整源码:后端 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

v0.1.0 · Windows 源码版(解压即用)

Choose a tag to compare

@xiaoming-kun xiaoming-kun released this 21 Sep 14:56

AmTiKu v0.1.0 · Windows 源码版(解压即用)

本地高中数学题库 + 组卷系统:检索 → 组卷 → 导出 → 讲义。数据全部在本机,不依赖任何外部服务。

下载哪个

包 大小 适合
AmTiKu-Windows-20260923.zip 403 MB Windows 10/11 x64。解压双击 启动.bat 就能用——不用装 Python、不用装 Node、不用装 LaTeX,全在包里

本地打包时的名字是 AmTiKu-源码版-20260923.zip,同一个文件(sha256 78932ce69121…)。
GitHub 会把附件名里的中文抹掉,所以这里用 ASCII 名。

早先挂的 AmTiKu-slim.zip / AmTiKu-macOS-arm64.zip / AmTiKu-windows-x64.zip /
AmTiKu-Windows-tex.zip 是不含内置 LaTeX 的旧包,导出 PDF 会失败,已下架。
要给 macOS 用,见仓库 README 里的源码运行方式。

怎么开始(Windows)

  1. 先解压(别在压缩包里直接双击)
  2. 双击 启动.bat —— 只有一个入口:
    • 机器上没有 Python 3.11+ → 自动装上包里自带的 Python 3.13.15
      (只装给当前用户,不需要管理员权限、也不需要联网下载)
    • 依赖全部走包内 wheel,离线安装,约 1~2 分钟
    • 然后自动打开浏览器: http://127.0.0.1:8899
    • 双击没反应 → 右键 启动.bat → 属性 → 勾「解除锁定」(Windows 给下载文件打的标记,一次即可)
  3. 以后再开:还是双击 启动.bat,环境已就绪,几秒起服务。
    用完关掉浏览器页面,程序 25 秒后自动退出(那个黑窗口就是程序本体)。

放在哪个目录都行,含中文、带空格的路径都可以——导出用的 LaTeX 引擎会在
%TEMP% 下建一条纯 ASCII 目录联接再启动,绕开 kpathsea 的中文路径限制。

里面有什么

后端 Python 3 + 自研 HTTP 服务(amti/,25 个模块),完整源码
前端 React + TypeScript 源码 + 已构建产物(web/dist/,所以不用装 Node)
LaTeX 内置 Windows 版最小 TeX Live(tex/,含 exam-zh / elegantnote 等本项目要用的宏包)
Python 内置安装包(依赖/python-3.13.15-amd64.exe),没 Python 时自动装
依赖 依赖/wheels/ 离线 wheel,装依赖不用联网
demo 出厂 4 道自编题:1 单选 / 1 多选 / 1 填空 / 1 解答(含 1 张抛物线图)

能做什么

  • 按章节 / 考点 / 年份 / 难度 / 题型筛题;看题干、选项、答案、解析、考点、出处
  • 组卷导出 PDF:高考卷按真卷结构 8 单选 + 3 多选 + 3 填空 + 5 解答排布,可出留空学生版
  • A4 讲义(一题一页,题目下方整片留白,给 iPad 讲课用)
  • 录入题目:粘贴 LaTeX,入库前自动跑格式检查与查重
  • 程序只监听 127.0.0.1,不联网、不上传任何数据

电脑要求

  • Windows 10 / 11 x64,2 GB 内存、约 2 GB 空闲磁盘(解压后约 1 GB)
  • 现代浏览器(Chrome / Edge / Firefox)
  • 完全离线可用——不需要联网、不需要注册、不需要预装任何东西

需要题库数据?

本仓库与发布包只含代码和 4 道自编 demo 题。真实题库(20,934 道,答案 100%、
解析 99.9%,含 1991–2026 高考真题汇编与各地模拟题)不公开、也不随代码授权。
如需购买或授权使用,加 QQ:3138046922 联系作者。

换成自己的题库

把四样放到解压目录下(与代码同级)覆盖同名文件,再跑一次
python amti.py snapshot 建基线,重启服务即可:

题目/001.tex …      题库主文件(每卷 ≤5000 题,LaTeX)
图片/               配图(内容寻址命名,程序自动生成)
知识点.json         考点大纲
归档快照.json        基线快照

格式说明见仓库里的 AGENTS.md 与包内 使用说明(先看我).txt。

许可与数据

  • 代码:MIT(见 LICENSE)
  • 题库数据:不在本仓库、也不在本发布包中(只有 4 道自编 demo)。真实题库属于作者,保留所有权利。