# examUI **Repository Path**: babytech/examUI ## Basic Information - **Project Name**: examUI - **Description**: 本程序设计为图形化鸡娃程序APP,仅供演示,禁止商用 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-08-22 - **Last Updated**: 2025-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # examUI #### 介绍 本程序设计为图形化程序 鸡娃程序APP 仅供演示,禁止商用 #### 软件架构 程序使用Python语言进行开发,需使用支持Python3标准开发环境 程序使用tkinter库进行GUI图形化窗口设计 题库采用标准JSON文件格式,为方便生成题库,可使用EXCEL转JSON的方式 建议用户按照EXCEL题库模板编辑生成自定义的EXCEL题库文件 界面目前开放全部功能,后续会采用家长版、学生版对界面进行配置裁减 #### 作者 Babytech (E-mail: babytech@126.com) #### 当前版本 0.1.4 #### 版本历史记录 v0.0.1: 支持图形化显示、支持单选题 v0.0.2: 重构部分代码,界面增加功能按钮,支持开始测验、提交答案 v0.0.3: 增加登录页面、支持多选题 v0.0.4: 增加JSON转EXCEL、EXCEL转JSON功能,可用于导入题库 v0.0.5: 增加帮助按钮,获得提示信息,增加答题倒计时功能 v0.0.6: 增加只看错题功能,支持多用户登录 v0.0.7: 增加生成试卷功能,支持设置考试时长,支持选择测试课程 v0.0.8: 增加历史统计功能,支持多用户按成绩排名 v0.0.9: 增加通过邮件找回密码功能,支持成绩按单科排名 v0.1.0: 支持成绩按科目总分排名,支持填空题 v0.1.1: 支持家长版、学生版配置不同界面,供登录时进行选择 v0.1.2: 增加成绩统计分布图形化显示功能 v0.1.3: 增加密钥加密和解密功能,可用来访问百度文字转语音请求 v0.1.4: 增加播放录音按钮,支持英语听力题 #### 使用说明 1. 第一次使用时需要新用户注册后,根据用户名、密码进行登录 2. 若忘记密码,支持根据注册时提供的邮箱信息,把验证码发至注册邮箱进行重置密码操作 3. 对已使用的题库,可使用JSON转EXCEL的方式,将题库转成EXCEL文件方便编辑,对题目进行:增加/修改/删除/...等操作 #### 安装教程 对缺失的第三方包,使用JetBrains套件PyCharm程序进行安装,或者在命令行手动安装,比如: 1. pip install --upgrade pip 2. pip install tqdm 或 pip3 install tqdm 3. pip install pandas 或 pip3 install pandas 4. pip install PIL 或 pip3 install PIL #### 安装PyInstaller Python 默认并不包含 PyInstaller 模块,因此需要自行安装 PyInstaller 模块。 安装 PyInstaller 模块与安装其他 Python 模块一样,使用 pip 命令安装即可。在命令行输入如下命令: pip install pyinstaller 强烈建议使用 pip 在线安装的方式来安装 PyInstaller 模块,不要使用离线包的方式来安装,因为 PyInstaller 模块还依赖其他模块,pip 在安装 PyInstaller 模块时会先安装它的依赖模块。 运行上面命令,应该看到如下输出结果: Successfully installed pyinstaller-x.x.x 其中的 x.x.x 代表 PyInstaller 的版本。 #### PyInstaller生成可执行程序 PyInstaller 工具的命令语法如下: pyinstaller 选项 Python 源文件 不管这个 Python 应用是单文件的应用,还是多文件的应用,只要在使用 pyinstaller 命令时编译作为程序入口的 Python 程序即可。 PyInstaller工具是跨平台的,它既可以在 Windows平台上使用,也可以在 Mac OS X 平台上运行。在不同的平台上使用 PyInstaller 工具的方法是一样的,它们支持的选项也是一样的。 使用命令行工具进入到此 app 目录下,执行如下命令: pyinstaller -F app.py 执行上面命令,将看到详细的生成过程。当生成完成后,将会在此 app 目录下看到多了一个 dist 目录,并在该目录下看到有一个 app.exe 文件,这就是使用 PyInstaller 工具生成的 EXE 程序。 在命令行窗口中进入 dist 目录下,在该目录执行 app.exe ,将会看到该程序生成如下输出结果: 在上面命令中使用了-F 选项,该选项指定生成单独的 EXE 文件,因此,在 dist 目录下生成了一个单独的大约为 6MB 的 app.exe 文件(在 Mac OS X 平台上生成的文件就叫 app,没有后缀) 与 -F 选项对应的是 -D 选项(默认选项),该选项指定生成一个目录(包含多个文件)来作为程序。 下面先将 PyInstaller 工具在 app 目录下生成的 build、dist 目录删除,并将 app.spec 文件也删除,然后使用如下命令来生成 EXE 文件。 pyinstaller -D app.py 执行上面命令,将看到详细的生成过程。当生成完成后,将会在 app 目录下看到多了一个 dist 目录, 并在该目录下看到有一个 app 子目录,在该子目录下包含了大量 .dll 文件和 .pyz 文件,它们都是 app.exe 程序的支撑文件。 在命令行窗口中运行该 app.exe 程序,同样可以看到与前一个 app.exe 程序相同的输出结果。 上面命令中的 -F 选项指定生成单个的可执行程序,-w 选项指定生成图形用户界面程序(不需要命令行界面)。 #### PyInstaller生成可执行程序运行后出现异常遇到问题的解决方案 pyinstaller打包python文件后,运行出现"Failed to execute script xxx.exe"错误的解决方式(No module named 'xxx') ImportError:No module named 'xxx' 这个问题出现的原因是,有些模块是隐藏导入的,但是pyinstaller打包时并未指定,所以执行时找不到此模块 问题解决:打包文件时,会生成一个spec文件;假如你主python文件叫做main.py,那么修改main.spec文件 我遇到的是No module named 'tqdm', 需要做的就是: 1. 设置此模块隐藏导入, 编辑main.spec文件,找到hiddenimports=这句,加上你缺失的模块,比如: hiddenimports=['tqdm'] 2. 以此spec文件打包python(修改后记得保存),执行:pyinstaller main.spec ImportError: cannot import name 'ImageTk'解决方法 1. 缺少引用的原因。解决方案:from PIL import ImageTk 2. PIL库中找不到ImageTk。解决方案:sudo apt-get install python3-pil python3-pil.imagetk ImportError: cannot import name 'ImageTk' from 'PIL' (/tmp/_MEIuGKZpN/PIL/__init__.pyc) 大多数情况下是由于PIL版本和当前python的版本出现了不兼容导致的, 解决方案: 1. sudo pip uninstall pillow 2. sudo pip install pillow #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)