feat: 添加轻量打包和OCR自动安装功能

- 添加Windows打包脚本 build.bat
- 更新打包文档 BUILD.md(轻量版方案)
- OCR模块:添加首次运行时自动安装PaddleOCR的功能
- 主窗口:添加OCR安装检测和提示逻辑
- 创建应用入口 src/main.py

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
congsh
2026-02-12 10:14:10 +08:00
parent c4a77f8aa4
commit 154d53dbfd
8 changed files with 301 additions and 5 deletions

View File

@@ -27,7 +27,31 @@ try:
from paddleocr import PaddleOCR
except ImportError:
PaddleOCR = None
logging.warning("PaddleOCR 未安装,本地 OCR 功能不可用")
logging.warning("PaddleOCR 未安装,本地 OCR 功能不可用。首次运行时将自动安装。")
def ensure_paddleocr():
"""
确保 PaddleOCR 已安装,如果没有则安装
首次运行时自动下载安装 OCR 库
"""
global PaddleOCR
if PaddleOCR is None:
import subprocess
import sys
logging.info("正在安装 PaddleOCR...")
try:
subprocess.check_call([
sys.executable, "-m", "pip", "install",
"--break-system-packages",
"paddleocr"
])
# 重新导入
from paddleocr import PaddleOCR
globals()["PaddleOCR"] = PaddleOCR
logging.info("PaddleOCR 安装成功!")
except subprocess.CalledProcessError as e:
logging.error(f"PaddleOCR 安装失败: {e}")
raise
# 配置日志

View File

@@ -19,8 +19,9 @@ from PyQt6.QtWidgets import (
QFileDialog,
QMessageBox
)
from PyQt6.QtCore import Qt, QSize, pyqtSignal
from PyQt6.QtGui import QIcon, QShortcut, QKeySequence
from PyQt6.QtCore import Qt, QSize, pyqtSignal, QThread, QTimer
from PyQt6.QtGui import QIcon, QShortcut, QKeySequence, QMessageBox
from src.core.ocr import ensure_paddleocr
from src.gui.styles import ThemeStyles
from src.gui.widgets import (

19
src/main.py Normal file
View File

@@ -0,0 +1,19 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
CutThenThink 应用入口
截图 → OCR解析 → AI理解并分类 → 形成备注和执行计划
"""
import sys
import os
# 添加src目录到路径
current_dir = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, current_dir)
from gui.main_window import main
if __name__ == "__main__":
main()