题王 QKing 局域网答题系统 · 软件说明书
第 3 章

运行环境

源码目录(开发视角)

3.1 硬件环境

角色 最低配置 建议配置
教师机(运行服务) 双核 1.6GHz、内存 ≥2GB(空闲 300–400MB)、磁盘剩余 ≥100MB 四核 2.0GHz 以上、内存 4GB 以上、固态硬盘
学生机 可运行现代浏览器的任意设备(PC/平板/手机) 与教师机同一局域网

说明:程序为单进程轻量服务,日常运行内存占用约 100–200MB(含判分引擎按需加载)。

3.2 软件环境

项目 要求
操作系统(运行) Windows 7 SP1 / 10 / 11;亦可在 Linux 容器、云主机运行
Windows 7 附加要求 64 位 UCRT(建议安装 vc_redist.x64.exe),补丁顺序:SP1 → KB4474419 → KB4490628 → KB2999226
浏览器(学生端/教师端) Chrome / Edge ≥109、Firefox ESR 115(Win7 首选);IE 不支持
操作系统(打包) Win7 包:Windows + Python 3.8.10 amd64 + PyInstaller 5.13.2;Win10 包:Python 3.12 + PyInstaller <6.22.1
依赖库(后端) fastapi 0.110.0、pydantic 2.6.4、starlette 0.36.3、uvicorn 0.29.0、websockets 12.0、python-dotenv 1.0.1(均已随包内置,使用者无需安装)
数据库 SQLite(内置于 Python 标准库,无需单独安装)
可选软件 WPS Office / Microsoft Excel(用于编辑下载的表格模板)

3.3 部署形态

形态 适用场景 说明
打包版(单文件 exe) 教师机零环境部署(推荐) 双击 exe 起服务并打开后台页面;数据、配置、日志均在 exe 同目录
源码运行 开发、二次开发 项目根 python main.py;数据库为项目根 quiz.db
云端/反代部署 公网或跨校区访问 常驻 FastAPI 服务 + CDN/反向代理(EdgeOne/Nginx),需设置 BEHIND_PROXY=1 或 [app] behind_proxy=1

3.4 目录结构

源码目录(开发视角)

局域网答题/
├─ main.py                 应用入口与实时答题接口
├─ run_tests.py            回归测试统一入口
├─ oj_normalize.py         编程题用例规范化工具
├─ build_config.ini        打包配置(版本号、更新源)
├─ version.txt             版本号(打包时自动写入)
├─ quiz.db                 源码模式数据库
├─ core/                   业务与数据访问(账号/题库/记录/学校/OJ/导入)
├─ excelgrade/             Excel/WPS 操作题判分引擎与接口 + 本地判分工具页面
├─ exepack/                打包与运维(构建/路径/配置/日志/服务控制/升级)
├─ templates/              Jinja2 页面模板(13 个)
├─ static/                 前端资源(js/css/图片/vendor 第三方库/uploads 上传)
├─ tests/                  单元/集成/安全/压测套件
├─ tools/                  运维与数据处理脚本
├─ docs/                   文档(含本说明书与截图)
└─ dabao/                  打包辅助脚本

运行目录(打包版,exe 同目录)

局域网答题.exe
├─ config.ini              唯一配置文件(首启自动生成)
├─ data/
│   ├─ quiz.db             数据库
│   └─ backup/             自动备份
├─ uploads/                题干图片
├─ excelstore/             表格题三件套与学生作答(刻意不放 uploads/,避免被匿名下载)
├─ 运行日志.txt            运行日志(2MB 轮转,保留 5 份)
└─ 一键关闭服务.bat        优雅关闭服务