第 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 优雅关闭服务