build: 添加 Windows 打包方案

- 更新 PyInstaller spec 配置
- 简化 build.sh 构建脚本
- 更新 build.bat Windows 打包脚本
- 添加 docs/BUILD.md 打包说明文档

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
congsh
2026-02-12 15:59:23 +08:00
parent e853161975
commit 0ce1d71a90
4 changed files with 223 additions and 189 deletions

104
build.bat
View File

@@ -1,99 +1,49 @@
@echo off
REM ================================
REM CutThenThink Windows Build Script - Cloud Only Version
REM ================================
REM 纯云端版本 - 无需本地 ML 库
REM CutThenThink 极简版本 Windows 打包脚本
REM 设置控制台编码为 UTF-8
chcp 65001 >nul 2>&1
cd /d "%~dp0"
echo ========================================
echo CutThenThink 纯云端版本构建
echo ========================================
echo ===================================
echo CutThenThink v2.0 极简版构建
echo ===================================
echo.
echo 特点:
echo - OCR 使用云端 API
echo - AI 使用 API (OpenAI/Anthropic)
echo - 无需任何本地 ML 库
echo ========================================
echo - 核心依赖PyQt6, requests, Pillow
echo - 可选 OCRRapidOCR 插件
echo - 无重型依赖torch, transformers, paddleocr
echo ===================================
echo.
REM Check Python
echo [1/5] 检查 Python...
python --version 2>nul
if errorlevel 1 (
echo 错误: 未找到 Python
pause
exit /b 1
)
echo.
echo [2/5] 检查源码大小...
set SIZE=0
for /r %%A in (src\*) do (
set /a SIZE+=%%~zA
)
if %SIZE% GTR 5242880 (
echo 警告: src 目录大小超过 5MB构建的 exe 可能会很大
echo 当前大小: %SIZE% 字节
echo.
)
echo.
echo [3/5] 安装核心依赖...
python -m pip install --user pyinstaller 2>nul
python -m pip install --user "PyQt6>=6.7.0" 2>nul
python -m pip install --user "SQLAlchemy>=2.0.36" 2>nul
python -m pip install --user openai anthropic 2>nul
python -m pip install --user requests pyyaml pillow pyperclip 2>nul
echo.
echo [4/5] 清理旧的构建...
REM [1/3] 清理旧的构建
echo [1/3] 清理旧的构建...
if exist build rmdir /s /q build
if exist dist rmdir /s /q dist
REM [2/3] 安装构建依赖
echo.
echo [5/5] 开始构建...
python -m PyInstaller ^
--noconfirm ^
--name "CutThenThink" ^
--windowed ^
--onefile ^
--add-data "src:src" ^
--hidden-import=PyQt6.QtCore ^
--hidden-import=PyQt6.QtGui ^
--hidden-import=PyQt6.QtWidgets ^
--hidden-import=sqlalchemy ^
--hidden-import=sqlalchemy.orm ^
--hidden-import=PIL ^
--hidden-import=PIL.Image ^
--hidden-import=pyperclip ^
--hidden-import=yaml ^
--hidden-import=requests ^
--hidden-import=openai ^
--hidden-import=anthropic ^
--collect-all pyqt6 ^
src/main.py
echo [2/3] 安装构建依赖...
pip install pyinstaller 2>NUL || echo PyInstaller 已安装
REM [3/3] 构建可执行文件
echo.
echo [3/3] 构建可执行文件...
python -m PyInstaller CutThenThink.spec --clean
if errorlevel 1 (
echo.
echo ================================
echo 构建失败!
echo ================================
pause
exit /b 1
)
echo.
echo ================================
echo 构建成
echo ================================
echo 可执行文件: dist\CutThenThink.exe
echo ===================================
echo 构建成!
echo ===================================
echo.
echo 首次运行请配置:
echo - AI API Key (OpenAI/Anthropic)
echo - 云端 OCR API
echo 输出位置:
echo - dist\CutThenThink\ # 可执行文件目录
echo.
echo 首次运行前请配置:
echo 1. 可选安装 OCRpip install -r requirements-ocr.txt
echo 2. 配置文件:%%USERPROFILE%%\.cutthenthink\config.yaml
echo.
pause