Files
haha/build.py
27942 9bdf0e196a gui
第一版完整版
2026-01-27 00:39:39 +08:00

82 lines
2.4 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
打包脚本 - 使用 PyInstaller 打包 Python 代码
只打包 Python 代码,不包含其他资源文件
"""
import os
import sys
import subprocess
def build():
"""使用 PyInstaller 打包应用"""
# 检查是否安装了 PyInstaller
try:
import PyInstaller
except ImportError:
print("正在安装 PyInstaller...")
subprocess.check_call([sys.executable, "-m", "pip", "install", "pyinstaller"])
# PyInstaller 命令参数
cmd = [
"pyinstaller",
"--name=GUI应用", # 可执行文件名
"--onefile", # 打包成单个文件
"--windowed", # Windows 下不显示控制台窗口GUI应用
"--clean", # 清理临时文件
"--noconfirm", # 不询问覆盖
# 隐藏导入PyInstaller 可能无法自动检测的模块)
"--hidden-import=PyQt5",
"--hidden-import=PyQt5.QtCore",
"--hidden-import=PyQt5.QtGui",
"--hidden-import=PyQt5.QtWidgets",
"--hidden-import=qfluentwidgets",
"--hidden-import=pandas",
"--hidden-import=openpyxl",
"--hidden-import=loguru",
"--hidden-import=beautifulsoup4",
"--hidden-import=curl_cffi",
"--hidden-import=DrissionPage",
"--hidden-import=requests",
"--hidden-import=main", # 导入 main 模块
# 排除不需要的模块(减小体积)
"--exclude-module=matplotlib",
"--exclude-module=numpy.distutils",
"--exclude-module=scipy",
"--exclude-module=IPython",
"--exclude-module=jupyter",
# 主入口文件
"gui_app.py"
]
print("=" * 60)
print("开始打包...")
print("=" * 60)
print(f"执行命令: {' '.join(cmd)}")
print("=" * 60)
try:
# 执行打包命令
result = subprocess.run(cmd, check=True)
print("\n" + "=" * 60)
print("打包完成!")
print("=" * 60)
print(f"可执行文件位置: dist/GUI应用.exe")
print("=" * 60)
return True
except subprocess.CalledProcessError as e:
print(f"\n打包失败: {e}")
return False
except Exception as e:
print(f"\n打包过程中出现错误: {e}")
import traceback
traceback.print_exc()
return False
if __name__ == "__main__":
success = build()
sys.exit(0 if success else 1)