# app.spec
from PyInstaller.utils.hooks import collect_data_files, collect_submodulesdatas = [('templates/*', 'templates'), # 递归包含 templates 下所有文件和子目录('front/dist/*', 'static'), # 递归包含 static 下所有内容('front/dist/assets/*', 'static/assets'), # 递归包含 static/assets 下所有内容('PBlock/*', 'PBlock'), # 浏览器插件目录
]hiddenimports = ['flask', 'jinja2', 'werkzeug', 'itsdangerous', 'click','DrissionPage', 'selenium', 'playwright','win32process', 'multiprocessing'
]excludes = ['tkinter', # 排除 GUI 模块'matplotlib', # 排除科学计算模块
]a = Analysis(['app.py'],pathex=['.'], # 当前目录binaries=[],datas=datas,hiddenimports=hiddenimports,hookspath=[],runtime_hooks=[],excludes=excludes,win_no_prefer_redirects=False,win_private_assemblies=False,cipher=None,
)pyz = PYZ(a.pure, a.zipped_data, cipher=None)exe = EXE(pyz,a.scripts,a.binaries,a.zipfiles,a.datas,[],name='app',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,onefile=True,console=True,
)
打包:pyinstaller --clean app.spec
