2025-08-24 22:37:27 +08:00
|
|
|
|
# -*- mode: python ; coding: utf-8 -*-
|
|
|
|
|
|
import os
|
|
|
|
|
|
import sys
|
|
|
|
|
|
from PyInstaller.utils.hooks import collect_data_files
|
|
|
|
|
|
|
|
|
|
|
|
block_cipher = None
|
|
|
|
|
|
# 获取spec文件所在目录(项目根目录)
|
|
|
|
|
|
spec_dir = os.path.dirname(os.path.abspath(sys.argv[0]))
|
|
|
|
|
|
|
|
|
|
|
|
# 定义需要打包的资源文件
|
|
|
|
|
|
resource_files = [
|
|
|
|
|
|
# 将resource文件夹下的所有文件打包到程序内的resource目录
|
|
|
|
|
|
(os.path.join(spec_dir, 'resource'), 'resource')
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
# 收集PyQt相关的数据文件
|
|
|
|
|
|
qt_data = collect_data_files('PyQt5')
|
|
|
|
|
|
|
|
|
|
|
|
# 合并所有资源文件
|
|
|
|
|
|
all_resources = resource_files + qt_data
|
|
|
|
|
|
|
|
|
|
|
|
# 定义所有需要打包的文件和依赖
|
|
|
|
|
|
a = Analysis(
|
|
|
|
|
|
['./src/main.py'], # 程序入口文件
|
|
|
|
|
|
pathex=['./'], # 工程根目录(确保能找到子模块)
|
|
|
|
|
|
binaries=[],
|
|
|
|
|
|
# 配置资源文件(子模块会自动识别,主要配置非.py文件)
|
2025-08-25 14:57:49 +08:00
|
|
|
|
datas=all_resources,
|
2025-08-24 22:37:27 +08:00
|
|
|
|
# 隐藏依赖(若打包后提示缺少模块,添加在这里)
|
|
|
|
|
|
hiddenimports=[
|
|
|
|
|
|
],
|
|
|
|
|
|
hookspath=[],
|
|
|
|
|
|
hooksconfig={},
|
|
|
|
|
|
runtime_hooks=[],
|
|
|
|
|
|
excludes=[], # 排除不需要的模块(减小体积)
|
|
|
|
|
|
noarchive=False,
|
|
|
|
|
|
cipher=block_cipher,
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
|
|
|
|
|
|
|
|
|
|
|
|
exe = EXE(
|
|
|
|
|
|
pyz,
|
|
|
|
|
|
a.scripts,
|
|
|
|
|
|
a.binaries,
|
|
|
|
|
|
a.zipfiles,
|
|
|
|
|
|
a.datas,
|
|
|
|
|
|
name='OneKeyDiag', # 生成的EXE文件名
|
|
|
|
|
|
debug=False,
|
|
|
|
|
|
bootloader_ignore_signals=False,
|
|
|
|
|
|
strip=False,
|
|
|
|
|
|
upx=True, # 启用压缩(推荐)
|
|
|
|
|
|
upx_exclude=[],
|
|
|
|
|
|
runtime_tmpdir=None,
|
|
|
|
|
|
console=False, # 隐藏控制台(GUI程序)
|
|
|
|
|
|
disable_windowed_traceback=False,
|
|
|
|
|
|
argv_emulation=False,
|
|
|
|
|
|
target_arch=None,
|
|
|
|
|
|
codesign_identity=None,
|
|
|
|
|
|
entitlements_file=None,
|
|
|
|
|
|
# 指定程序图标(使用resources文件夹中的ico文件)
|
|
|
|
|
|
icon=os.path.join(spec_dir, 'resource','favicon.ico'),
|
|
|
|
|
|
)
|
2025-08-22 21:19:53 +08:00
|
|
|
|
|