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
|
使用方法: pip install pyinstaller && python build_exe.py
|
||||||
"""
|
"""
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
PROJECT_ROOT = Path(__file__).parent
|
PROJECT_ROOT = Path(__file__).parent
|
||||||
|
|
||||||
|
|
||||||
def build():
|
def build():
|
||||||
"""使用 PyInstaller 打包"""
|
"""使用 PyInstaller 打包(使用 Python -m 方式兼容性更好)"""
|
||||||
|
|
||||||
# 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("正在打包,请稍候...")
|
||||||
print(f"工作目录: {PROJECT_ROOT}")
|
print(f"工作目录: {PROJECT_ROOT}")
|
||||||
print(f"输出目录: {PROJECT_ROOT / 'dist'}")
|
|
||||||
print("-" * 50)
|
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("-" * 50)
|
||||||
print("打包完成!")
|
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__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
Reference in New Issue
Block a user