feat(core): 支持PyInstaller打包并优化资源路径

- 修改app.py以支持PyInstaller打包后的资源路径
- 更新session.py以支持APP_DATA_DIR环境变量
- 增强webui.py以设置打包后的数据目录
- 添加pyproject.toml的PyInstaller依赖组
- 新增构建脚本和GitHub Actions工作流
This commit is contained in:
cnlimiter
2026-03-15 20:54:52 +08:00
parent 45503102a6
commit 151fa7cc49
7 changed files with 215 additions and 21 deletions

49
build.sh Normal file
View File

@@ -0,0 +1,49 @@
#!/bin/bash
# 跨平台打包脚本(在各平台上分别运行)
set -e
OS=$(uname -s)
ARCH=$(uname -m)
case "$OS" in
Darwin)
PLATFORM="macos"
EXT=""
;;
Linux)
PLATFORM="linux"
EXT=""
;;
MINGW*|CYGWIN*|MSYS*)
PLATFORM="windows"
EXT=".exe"
;;
*)
PLATFORM="$OS"
EXT=""
;;
esac
OUTPUT_NAME="codex-register-${PLATFORM}-${ARCH}${EXT}"
echo "=== 构建平台: ${PLATFORM} (${ARCH}) ==="
echo "=== 输出文件: dist/${OUTPUT_NAME} ==="
# 安装打包依赖
pip install pyinstaller --quiet 2>/dev/null || \
uv run --with pyinstaller pyinstaller --version > /dev/null 2>&1
# 执行打包(优先用 uv回退到直接调用
if command -v uv &>/dev/null; then
uv run --with pyinstaller pyinstaller codex_register.spec --clean --noconfirm
else
pyinstaller codex_register.spec --clean --noconfirm
fi
# 重命名输出文件
mv dist/codex-register${EXT} dist/${OUTPUT_NAME} 2>/dev/null || \
mv "dist/codex-register" "dist/${OUTPUT_NAME}" 2>/dev/null || true
echo "=== 构建完成: dist/${OUTPUT_NAME} ==="
ls -lh dist/${OUTPUT_NAME}