## 后端(Flask API)打包与运行说明 ### 1. 是否可以用和前端相同的方式打包? **可以。** 后端同样可以用 **PyInstaller** 打包成一个可执行文件,只是: - 前端是 **GUI 程序**(`console=False`), - 后端是 **控制台服务程序**(`console=True`,启动后常驻,监听 5000 端口)。 本项目已经在 `backend` 目录下生成了两个打包脚本: - `build_backend.bat`(Windows) - `build_backend.sh`(Linux/Mac) --- ### 2. 打包前准备 在打包前,确保: - 已安装 Python 3 环境 - 已安装后端依赖: ```bash cd backend pip install -r requirements.txt ``` (如果使用虚拟环境,请先激活虚拟环境再执行上面的命令) --- ### 3. Windows 下打包后端 1. 打开命令提示符或 PowerShell 2. 进入 `backend` 目录: ```cmd cd F:\PyPro\TorqueWrench\backend ``` 3. 执行打包脚本: ```cmd build_backend.bat ``` 脚本会自动: - 检查并安装 PyInstaller - 清理旧的 `build/`、`dist/` 目录 - 调用: ```cmd pyinstaller --name backend_api --console --paths .. --hidden-import wrench_controller app.py ``` 4. 打包完成后,可执行文件位置: ```text backend\dist\backend_api\backend_api.exe ``` 5. 如果你已经有一个正在使用的数据库文件 `wrench.db`,可以复制过去: ```cmd copy wrench.db dist\backend_api\wrench.db ``` 6. 启动后端服务: ```cmd dist\backend_api\backend_api.exe ``` 启动后,后端会监听 `http://localhost:5000`,前端照常访问。 --- ### 4. Linux / Mac 下打包后端 1. 打开终端 2. 进入 `backend` 目录: ```bash cd /path/to/TorqueWrench/backend ``` 3. 赋予脚本执行权限(首次): ```bash chmod +x build_backend.sh ``` 4. 执行打包脚本: ```bash ./build_backend.sh ``` 脚本会自动: - 检查并安装 PyInstaller - 清理旧的 `build/`、`dist/` 目录 - 调用: ```bash pyinstaller --name backend_api --console --paths .. --hidden-import wrench_controller app.py ``` 5. 打包完成后,可执行文件位置: ```text backend/dist/backend_api/backend_api ``` 6. 如果已有生产数据库,复制到打包目录: ```bash cp wrench.db dist/backend_api/wrench.db ``` 7. 启动后端服务: ```bash ./dist/backend_api/backend_api ``` 同样会监听 `http://localhost:5000`。 --- ### 5. 和直接用 Python 运行的对比 - **直接运行(开发环境常用):** ```bash cd backend python app.py ``` - **打包运行(部署 / 发给其他机器):** - 不需要安装源码,只要有打包后的目录和配置/数据库文件即可。 - 更适合发给不熟悉 Python 环境的用户。 两种方式使用的是同一套代码逻辑,差别只是启动方式。 --- ### 6. 注意事项 - **端口**:打包后默认仍然是监听 5000 端口,如果需要改端口,需要改 `app.py` 启动代码(或用环境变量/参数)。 - **数据库文件**: - 代码中使用的是: - `db_path = os.path.join(os.path.dirname(__file__), "wrench.db")` - 打包后的 `__file__` 会指向打包目录内的脚本位置,所以: - 你只要把 `wrench.db` 放到 `dist/backend_api/` 目录下,程序就能正常使用。 - **日志输出**:后端是控制台应用,会在命令行窗口打印日志(方便排查问题)。 --- ### 7. 简短回答你的问题 - **问**:后端服务要如何打包?也用同样方式可以吗? - **答**:可以。后端已经提供了和前端类似的一键打包脚本: - Windows:`backend/build_backend.bat` - Linux/Mac:`backend/build_backend.sh` 你只需要: 1. 进入 `backend` 目录 2. 安装依赖:`pip install -r requirements.txt` 3. 运行打包脚本(Windows 用 `.bat`,Linux/Mac 用 `.sh`) 4. 把 `wrench.db` 复制到 `dist/backend_api/`,运行生成的 `backend_api` 即可。