Repository navigation
Releases: xiaoming-kun/AmTiKu
Release list
v1.8.2 · 拆分「装环境」与「启动」· 源码版(不含题库)
源码版发布包:解压双击即可用,不含题库。
这个包里有什么
- 完整源码:后端 Python(
amti/)+ 前端 React 源码(web/src/) - 已构建好的前端(
web/dist/)—— 不用装 Node - 内置 LaTeX 编译器(
tex/)—— 不用装 TeX Live,导出 PDF 直接能用 - 内置 Python 安装包 + 离线依赖 wheel —— 没装 Python 的机器会自动装,且不用联网
demo数据/:4 道自编示例题(非真题)+ 完整考点大纲
不含什么
题库数据不在此包内(题目/、图片/、知识点.json、归档快照.json)。
要用自己的题库,按 README 把数据放进去。
界面截图也不随包发布 —— 那些图是实拍,画面里就是真题原题与答案。
怎么用(两步,各管一件事)
- 双击
安装环境.bat—— 只做这一次。
自动找 Python(没有就装包里自带的)→ 建运行环境 → 装依赖 → 自检。
已经就绪时它会直接退出、什么都不装,所以重复双击也没事。 - 双击
启动.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」那一步。
三处修:
- 黑名单改成累积列表,用
find判成员
(不能用!VAR:搜=替!:Python 路径里有冒号,那套语法会在第一个冒号处截断) - 显式跳过应用商店占位程序 —— 它被调用时退出码是 0,
于是版本检查"通过"、被当成真的 Python,直到建 venv 时才炸 - 加重试上限,黑名单再出岔子也绝不允许死循环
修:新装的 Python 跑不起来时,说清原因
如果系统里残留着旧的 Python 安装记录,Windows 会走「修复」而不是「安装」,
失败时只报一个看不懂的退出码 1603。现在会直接告诉用户:
这是残留记录导致的,去「应用和功能」里卸载所有 Python 再重试。
同时带上 v1.8.1 的两项
- 中文路径下导出 PDF 必定失败 → 改成自动用 ASCII 目录联接启动引擎
- 题目间距填裸数字(如
6)整卷编译失败 → 现在自动按6pt算 - 移除「知识链路」功能
sha256: 628dd26db73a0c6b929e2b67ae3709c083b0ffdff5c15b284262703b6f6c5b53
v0.1.0 · Windows 源码版(解压即用)
AmTiKu v0.1.0 · Windows 源码版(解压即用)
本地高中数学题库 + 组卷系统:检索 → 组卷 → 导出 → 讲义。数据全部在本机,不依赖任何外部服务。
下载哪个
| 包 | 大小 | 适合 |
|---|---|---|
AmTiKu-Windows-20260923.zip |
403 MB | Windows 10/11 x64。解压双击 启动.bat 就能用——不用装 Python、不用装 Node、不用装 LaTeX,全在包里 |
本地打包时的名字是
AmTiKu-源码版-20260923.zip,同一个文件(sha25678932ce69121…)。
GitHub 会把附件名里的中文抹掉,所以这里用 ASCII 名。早先挂的
AmTiKu-slim.zip/AmTiKu-macOS-arm64.zip/AmTiKu-windows-x64.zip/
AmTiKu-Windows-tex.zip是不含内置 LaTeX 的旧包,导出 PDF 会失败,已下架。
要给 macOS 用,见仓库 README 里的源码运行方式。
怎么开始(Windows)
- 先解压(别在压缩包里直接双击)
- 双击
启动.bat—— 只有一个入口:- 机器上没有 Python 3.11+ → 自动装上包里自带的 Python 3.13.15
(只装给当前用户,不需要管理员权限、也不需要联网下载) - 依赖全部走包内 wheel,离线安装,约 1~2 分钟
- 然后自动打开浏览器: http://127.0.0.1:8899
- 双击没反应 → 右键
启动.bat→ 属性 → 勾「解除锁定」(Windows 给下载文件打的标记,一次即可)
- 机器上没有 Python 3.11+ → 自动装上包里自带的 Python 3.13.15
- 以后再开:还是双击
启动.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)。真实题库属于作者,保留所有权利。