feat: 添加桌面程序打包支持
- 添加 PyInstaller 打包脚本 build_exe.py - 更新 requirements.txt 添加 PyQt6 和 opencv-python - .gitignore 添加 PyInstaller 打包产物忽略规则 使用方法: pip install pyinstaller python build_exe.py Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
9
.gitignore
vendored
9
.gitignore
vendored
@@ -51,3 +51,12 @@ android-app/*.keystore
|
|||||||
android-app/**/kotlin/
|
android-app/**/kotlin/
|
||||||
android-app/**/tmp/
|
android-app/**/tmp/
|
||||||
android-app/**/.kotlin/
|
android-app/**/.kotlin/
|
||||||
|
|
||||||
|
# ==================================================
|
||||||
|
# PyInstaller 打包产物
|
||||||
|
# ==================================================
|
||||||
|
*.spec
|
||||||
|
build/
|
||||||
|
dist/
|
||||||
|
*.exe
|
||||||
|
*.db
|
||||||
|
|||||||
46
build_exe.py
Normal file
46
build_exe.py
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
打包脚本 - 将桌面程序打包成独立可执行文件
|
||||||
|
使用方法: pip install pyinstaller && python build_exe.py
|
||||||
|
"""
|
||||||
|
import subprocess
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
PROJECT_ROOT = Path(__file__).parent
|
||||||
|
|
||||||
|
|
||||||
|
def build():
|
||||||
|
"""使用 PyInstaller 打包"""
|
||||||
|
|
||||||
|
# PyInstaller 命令
|
||||||
|
cmd = [
|
||||||
|
"pyinstaller",
|
||||||
|
"--name=信封信息提取系统",
|
||||||
|
"--onefile", # 打包成单个 exe
|
||||||
|
"--windowed", # 无控制台窗口
|
||||||
|
"--clean", # 清理缓存
|
||||||
|
"--noconfirm", # 覆盖输出目录不询问
|
||||||
|
"--add-data=src;src", # 包含源码目录
|
||||||
|
"--hidden-import=PaddleOCR",
|
||||||
|
"--hidden-import=paddleocr",
|
||||||
|
"--hidden-import=cv2",
|
||||||
|
"--hidden-import=PyQt6",
|
||||||
|
"--collect-all=PaddleOCR",
|
||||||
|
"--collect-all=paddleocr",
|
||||||
|
"src/desktop.py",
|
||||||
|
]
|
||||||
|
|
||||||
|
print("正在打包,请稍候...")
|
||||||
|
print(f"工作目录: {PROJECT_ROOT}")
|
||||||
|
print(f"输出目录: {PROJECT_ROOT / 'dist'}")
|
||||||
|
print("-" * 50)
|
||||||
|
|
||||||
|
subprocess.run(cmd, check=True, cwd=PROJECT_ROOT)
|
||||||
|
|
||||||
|
print("-" * 50)
|
||||||
|
print("打包完成!")
|
||||||
|
print(f"可执行文件: {PROJECT_ROOT / 'dist' / '信封信息提取系统.exe'}")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
build()
|
||||||
@@ -1,7 +1,19 @@
|
|||||||
|
# OCR 核心依赖
|
||||||
paddleocr>=2.6,<3
|
paddleocr>=2.6,<3
|
||||||
paddlepaddle>=2.5,<3
|
paddlepaddle>=2.5,<3
|
||||||
|
|
||||||
|
# 数据处理
|
||||||
pandas
|
pandas
|
||||||
openpyxl
|
openpyxl
|
||||||
pydantic
|
pydantic
|
||||||
tqdm
|
tqdm
|
||||||
|
|
||||||
|
# Web 界面
|
||||||
streamlit
|
streamlit
|
||||||
|
|
||||||
|
# 桌面版依赖
|
||||||
|
PyQt6>=6.6.0
|
||||||
|
opencv-python>=4.8.0
|
||||||
|
|
||||||
|
# 打包工具(仅开发时需要)
|
||||||
|
pyinstaller>=6.0.0
|
||||||
|
|||||||
Reference in New Issue
Block a user