BodyBalanceEvaluation/backend/build_backend.ps1

68 lines
2.1 KiB
PowerShell
Raw Normal View History

# ============================================================
# 后端快速打包命令 (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