#!/bin/bash # 电动扳手后端 API 打包脚本(Linux/Mac) echo "========================================" echo "电动扳手后端 API 打包脚本" echo "========================================" echo "" # 确保在 backend 目录下执行 cd "$(dirname "$0")" # 检查 PyInstaller 是否已安装 if ! python3 -c "import PyInstaller" 2>/dev/null; then echo "[错误] PyInstaller 未安装" echo "正在安装 PyInstaller..." pip3 install pyinstaller if [ $? -ne 0 ]; then echo "[错误] PyInstaller 安装失败,请手动执行: pip3 install pyinstaller" exit 1 fi fi echo "[信息] PyInstaller 已安装" echo "" # 清理之前的构建文件 echo "[信息] 清理之前的构建文件..." rm -rf build dist echo "" echo "[信息] 当前目录: $(pwd)" echo "[信息] 开始打包后端 API 服务..." echo "" # 使用 onedir 模式打包,并显式包含父目录中的 wrench_controller 模块 # --paths .. 把项目根目录加入模块搜索路径 # --hidden-import ... 确保 wrench_controller 被打包进可执行文件 pyinstaller --name backend_api --console --paths .. --hidden-import wrench_controller app.py if [ $? -ne 0 ]; then echo "" echo "[错误] 打包失败!" exit 1 fi echo "" echo "========================================" echo "后端打包完成!" echo "========================================" echo "" echo "可执行文件位置: dist/backend_api/backend_api" echo "" echo "下一步操作:" echo "1. 如果已有生产用数据库,可将当前目录的 wrench.db 复制到 dist/backend_api/ 目录:" echo " cp wrench.db dist/backend_api/wrench.db" echo "" echo "2. 运行后端服务:" echo " ./dist/backend_api/backend_api" echo "" echo "3. 确保前端或第三方程序访问的地址仍为:" echo " http://localhost:5000" echo ""