# ============================================================ # 后端快速打包命令 (PowerShell) # 调用 build_app.py (PyInstaller) 一键打包后端为 exe # # 用法: # .\build_backend.ps1 # 一键打包 # .\build_backend.ps1 -Clean # 彻底重建(更慢更稳) # .\build_backend.ps1 -Timeout 3600 # 自定义构建超时(秒) # ============================================================ param( [switch]$Clean, [int]$Timeout = 1800 ) $ErrorActionPreference = 'Stop' # 兼容中文输出编码 try { [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 } catch {} # 切换到脚本所在目录 Set-Location -Path $PSScriptRoot $pythonExe = Join-Path $PSScriptRoot 'venv\Scripts\python.exe' # 检查虚拟环境 if (-not (Test-Path $pythonExe)) { Write-Host "[错误] 未找到虚拟环境: $pythonExe" -ForegroundColor Red Write-Host "请先创建虚拟环境并安装依赖:" Write-Host " python -m venv venv" Write-Host " venv\Scripts\pip install -r requirements.txt" Write-Host " venv\Scripts\pip install -r requirements_build.txt" Read-Host "`n按回车键退出" exit 1 } Write-Host "============================================================" Write-Host " 后端快速打包 (PyInstaller)" Write-Host " 虚拟环境: $pythonExe" Write-Host " 附加参数: Clean=$Clean Timeout=$Timeout" Write-Host " 输出目录: dist\BodyBalanceBackend\" Write-Host "============================================================" Write-Host "" # 组装 build_app.py 参数 $buildArgs = @('build_app.py', '--no-pause') if ($Clean) { $buildArgs += '--clean' } $buildArgs += '--timeout', "$Timeout" & $pythonExe @buildArgs $exitCode = $LASTEXITCODE if ($null -eq $exitCode) { $exitCode = 1 } Write-Host "" if ($exitCode -eq 0) { Write-Host "[成功] 后端打包完成,产物位于 dist\BodyBalanceBackend\" -ForegroundColor Green } else { Write-Host "[失败] 后端打包失败,退出码 $exitCode,请查看上方日志" -ForegroundColor Red } Read-Host "`n按回车键退出" exit $exitCode