3.8 KiB
3.8 KiB
后端(Flask API)打包与运行说明
1. 是否可以用和前端相同的方式打包?
可以。
后端同样可以用 PyInstaller 打包成一个可执行文件,只是:
- 前端是 GUI 程序(
console=False), - 后端是 控制台服务程序(
console=True,启动后常驻,监听 5000 端口)。
本项目已经在 backend 目录下生成了两个打包脚本:
build_backend.bat(Windows)build_backend.sh(Linux/Mac)
2. 打包前准备
在打包前,确保:
- 已安装 Python 3 环境
- 已安装后端依赖:
cd backend
pip install -r requirements.txt
(如果使用虚拟环境,请先激活虚拟环境再执行上面的命令)
3. Windows 下打包后端
-
打开命令提示符或 PowerShell
-
进入
backend目录:
cd F:\PyPro\TorqueWrench\backend
- 执行打包脚本:
build_backend.bat
脚本会自动:
- 检查并安装 PyInstaller
- 清理旧的
build/、dist/目录 - 调用:
pyinstaller --name backend_api --console --paths .. --hidden-import wrench_controller app.py
- 打包完成后,可执行文件位置:
backend\dist\backend_api\backend_api.exe
- 如果你已经有一个正在使用的数据库文件
wrench.db,可以复制过去:
copy wrench.db dist\backend_api\wrench.db
- 启动后端服务:
dist\backend_api\backend_api.exe
启动后,后端会监听 http://localhost:5000,前端照常访问。
4. Linux / Mac 下打包后端
-
打开终端
-
进入
backend目录:
cd /path/to/TorqueWrench/backend
- 赋予脚本执行权限(首次):
chmod +x build_backend.sh
- 执行打包脚本:
./build_backend.sh
脚本会自动:
- 检查并安装 PyInstaller
- 清理旧的
build/、dist/目录 - 调用:
pyinstaller --name backend_api --console --paths .. --hidden-import wrench_controller app.py
- 打包完成后,可执行文件位置:
backend/dist/backend_api/backend_api
- 如果已有生产数据库,复制到打包目录:
cp wrench.db dist/backend_api/wrench.db
- 启动后端服务:
./dist/backend_api/backend_api
同样会监听 http://localhost:5000。
5. 和直接用 Python 运行的对比
- 直接运行(开发环境常用):
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
- Windows:
你只需要:
- 进入
backend目录 - 安装依赖:
pip install -r requirements.txt - 运行打包脚本(Windows 用
.bat,Linux/Mac 用.sh) - 把
wrench.db复制到dist/backend_api/,运行生成的backend_api即可。