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

使用PyInstaller打包PyGubu项目为EXE后运行报错:找不到指定模块

解决PyInstaller打包后缺失pygubu.builder.ttkstdwidgets模块的问题

这个问题我之前帮好几个开发者处理过,核心原因是PyInstaller的自动依赖检测机制没捕捉到pygubu动态加载的这个子模块。下面给你几个实用的解决办法,按顺序尝试即可:

方法1:在主脚本中显式导入缺失模块

PyInstaller会扫描你代码里的import语句来收集打包依赖,所以直接在你用来打包的主Python脚本顶部加上一行:

import pygubu.builder.ttkstdwidgets

之后重新用PyInstaller打包,它就会把这个模块纳入打包范围了。

方法2:用--hidden-import参数指定缺失模块

如果不想修改代码,打包时直接在命令行添加这个参数,强制PyInstaller包含该模块:

pyinstaller --hidden-import=pygubu.builder.ttkstdwidgets 你的主脚本名.py

这个参数的作用就是告诉PyInstaller:“别漏掉这个没被自动检测到的模块”。

方法3:通过.spec文件手动配置隐藏导入

如果你的打包需求比较复杂,建议用.spec文件来管理打包配置:

  1. 先生成.spec文件:
pyinstaller 你的主脚本名.py
  1. 打开生成的你的主脚本名.spec文件,找到hiddenimports字段,把缺失的模块添加进去:
hiddenimports=['pygubu.builder.ttkstdwidgets'],
  1. 最后用.spec文件重新打包:
pyinstaller 你的主脚本名.spec

另外提一句,既然你的EXE和UI文件在同一目录,打包时记得用--add-data参数确保UI文件被正确包含(Windows下格式为--add-data="你的UI文件.ui;.",Linux/macOS下用冒号分隔),不过当前先解决模块缺失的问题即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:35:25