onekeydiag/onekeydiag.spec

64 lines
1.8 KiB
RPMSpec
Raw Normal View History

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文件
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