You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5脚本打包exe报Unhandled exception in script错误解决

PyQt5程序打包为exe报模块找不到的解决方案

这个问题本质是两个原因:要么打包用的Python环境和安装PyQt5的环境不匹配,要么PyInstaller没有自动识别到PyQtWebEngine关联的所有隐式依赖,按以下步骤操作即可解决:

1. 先对齐打包环境

绝大多数人踩这个坑都是因为电脑上装了多个Python版本,或者PyCharm用了虚拟环境,pip装包的时候装到了别的环境里,打包时调用的PyInstaller找不到对应依赖。

  • 打开你写代码用的PyCharm内置终端,不要用系统自带的cmd,依次执行以下命令校验当前环境的依赖:
    • 检查PyQt5安装状态:pip show PyQt5
    • 检查PyQtWebEngine安装状态:pip show PyQtWebEngine
    • 检查PyInstaller安装状态:pip show pyinstaller
  • 如果上面任意一条命令执行后没有返回版本号、安装路径信息,说明当前环境没装对应包,先执行清理再重装:
pip uninstall -y PyQt5 PyQtWebEngine PyQt5-sip pyinstaller
pip install PyQt5 PyQtWebEngine pyinstaller

2. 带全依赖参数执行打包

PyQtWebEngine关联了多个PyQt5子模块,PyInstaller默认的静态扫描识别不到这些依赖,手动挨个加缺失模块效率太低,直接在项目根目录的终端里执行以下打包命令即可:
Windows系统用这个命令:

pyinstaller -w -F ^
--hidden-import PyQt5.QtCore ^
--hidden-import PyQt5.QtGui ^
--hidden-import PyQt5.QtWidgets ^
--hidden-import PyQt5.QtWebEngineWidgets ^
--hidden-import PyQt5.QtWebEngineCore ^
--hidden-import PyQt5.QtWebChannel ^
--hidden-import PyQt5.sip ^
main.py

macOS/Linux系统把行尾的^换成\即可。

3. 仍报错时补充路径配置

如果执行完上面的命令还是报模块找不到,先执行pip show PyQt5拿到PyQt5的安装路径,比如返回的Location字段是C:\Users\Alessandro\AppData\Local\Programs\Python\Python310\lib\site-packages,就在打包命令里加--paths参数指向PyQt5的安装目录,示例命令:

pyinstaller -w -F ^
--paths "C:\Users\Alessandro\AppData\Local\Programs\Python\Python310\lib\site-packages\PyQt5" ^
--hidden-import PyQt5.QtCore ^
--hidden-import PyQt5.QtGui ^
--hidden-import PyQt5.QtWidgets ^
--hidden-import PyQt5.QtWebEngineWidgets ^
--hidden-import PyQt5.QtWebEngineCore ^
--hidden-import PyQt5.QtWebChannel ^
--hidden-import PyQt5.sip ^
main.py

注意事项

  • 每次重新打包前,先把之前生成的build、dist文件夹,以及后缀为.spec的打包配置文件全部删掉,避免旧缓存影响打包结果
  • 不建议用-F单文件模式打包带PyQtWebEngine的程序,单文件启动速度慢,还容易出现运行时路径解析错误,换成-D目录模式打包稳定性会高很多
  • 如果用auto-py-to-exe工具,直接在工具的高级设置里,把上面列的所有隐式导入模块添加进去,再把PyQt5的安装路径加到附加路径栏里,和命令行打包效果一致

内容的提问来源于stack exchange,提问作者melone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:54:36