fix: 修复打包脚本兼容性
- 使用 Python -m PyInstaller 方式提高兼容性 - 简化命令参数 - 添加文件大小显示 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
54
build_exe.py
54
build_exe.py
@@ -4,42 +4,52 @@
|
||||
使用方法: pip install pyinstaller && python build_exe.py
|
||||
"""
|
||||
import subprocess
|
||||
import sys
|
||||
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",
|
||||
]
|
||||
"""使用 PyInstaller 打包(使用 Python -m 方式兼容性更好)"""
|
||||
|
||||
print("正在打包,请稍候...")
|
||||
print(f"工作目录: {PROJECT_ROOT}")
|
||||
print(f"输出目录: {PROJECT_ROOT / 'dist'}")
|
||||
print("-" * 50)
|
||||
|
||||
subprocess.run(cmd, check=True, cwd=PROJECT_ROOT)
|
||||
# 使用 Python -m PyInstaller 方式,兼容性更好
|
||||
cmd = [
|
||||
sys.executable,
|
||||
"-m", "PyInstaller",
|
||||
"--name=信封信息提取系统",
|
||||
"--onefile",
|
||||
"--windowed",
|
||||
"--clean",
|
||||
"--noconfirm",
|
||||
"--add-data=src;src",
|
||||
"src/desktop.py",
|
||||
]
|
||||
|
||||
try:
|
||||
subprocess.run(cmd, check=True, cwd=str(PROJECT_ROOT))
|
||||
print("-" * 50)
|
||||
print("打包完成!")
|
||||
print(f"可执行文件: {PROJECT_ROOT / 'dist' / '信封信息提取系统.exe'}")
|
||||
exe_path = PROJECT_ROOT / "dist" / "信封信息提取系统.exe"
|
||||
if exe_path.exists():
|
||||
size_mb = exe_path.stat().st_size / 1024 / 1024
|
||||
print(f"可执行文件: {exe_path}")
|
||||
print(f"文件大小: {size_mb:.1f} MB")
|
||||
else:
|
||||
print("警告: 未找到输出文件")
|
||||
except subprocess.CalledProcessError as e:
|
||||
print("-" * 50)
|
||||
print(f"打包失败: {e}")
|
||||
sys.exit(1)
|
||||
except FileNotFoundError:
|
||||
print("-" * 50)
|
||||
print("错误: 未找到 PyInstaller")
|
||||
print("请先安装: pip install pyinstaller")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user