# -*- mode: python ; coding: utf-8 -*- import os import sys from PyInstaller.utils.hooks import collect_all def get_version(): with open('version.txt', 'r', encoding='utf-8') as f: version = f.read().strip() return version version = get_version() # 收集所有需要的依赖 datas = [('icon', 'icon'), ('version.txt', '.')] binaries = [] hiddenimports = [ 'win32gui', 'win32con', 'win32process', 'psutil', # Windows API 相关 'PyQt5', 'PyQt5.QtCore', 'PyQt5.QtGui', 'PyQt5.QtWidgets', # GUI 相关 'PyQt5.sip', # PyQt5 必需 'PyQt5.QtNetwork', # 网络相关 'PIL', # Pillow 相关 'PIL._imaging', # Pillow 核心 'requests', 'urllib3', 'certifi', # 网络请求相关 'json', 'uuid', 'hashlib', 'logging', # 基础功能相关 'importlib', # 导入相关 'pkg_resources', # 包资源 ] # 主要的分析对象 a = Analysis( ['main.py'], pathex=[], binaries=binaries, datas=datas, hiddenimports=hiddenimports, hookspath=[], hooksconfig={}, runtime_hooks=[], excludes=['_tkinter', 'tkinter', 'Tkinter'], win_no_prefer_redirects=False, win_private_assemblies=False, noarchive=False, module_collection_mode={'PyQt5': 'pyz+py'}, ) # 创建PYZ pyz = PYZ(a.pure) # 创建EXE exe = EXE( pyz, a.scripts, a.binaries, a.datas, [], name=f'听泉cursor助手{version}', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, upx_exclude=[], runtime_tmpdir=None, console=False, disable_windowed_traceback=False, argv_emulation=False, target_arch=None, codesign_identity=None, entitlements_file=None, icon=['icon\\two.ico'], )