66 lines
1.8 KiB
Python
66 lines
1.8 KiB
Python
# -*- 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=[
|
||
# 若有其他资源(如.ui文件、图片等),按此格式添加
|
||
],
|
||
# 隐藏依赖(若打包后提示缺少模块,添加在这里)
|
||
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'),
|
||
)
|
||
|