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

使用PyInstaller打包后运行exe报No module named kivymd.effects错误如何解决

问题根因

PyInstaller打包时不会自动递归打包kivymd的所有子模块,仅在hiddenimports中添加顶层kivymd不会引入kivymd.effects这类嵌套子模块,因此触发运行时导入报错。

解决方案

方案1:补充缺失的子模块到hiddenimports

修改你的main.spec文件中hiddenimports配置项,补充报错涉及的模块:

hiddenimports=[
    "kivymd",
    "kivymd.effects",
    "kivymd.effects.stiffscroll",
    "kivymd.effects.stiffscroll.StiffScrollEffect"
]

如果后续运行仍报其他kivymd子模块缺失,直接将报错提示的模块路径按上述格式追加到列表中即可。

方案2:全量导入kivymd包(更稳妥)

如果不想挨个补录子模块,可以直接在spec中配置打包整个kivymd包的所有资源:

  1. 在main.spec的a = Analysis(...)代码段之后,添加如下内容:
from kivymd import path as kivymd_path
kivymd_datas = Tree(kivymd_path, prefix="kivymd")
  1. 将上面定义的kivymd_datas追加到打包配置的datas列表中:
  • 如果是单目录打包,加到COLLECT调用的参数列表里:COLLECT(exe, a.binaries, a.datas, kivymd_datas, ...)
  • 如果是单文件打包,加到EXE调用的参数列表里:EXE(pyz, a.scripts, a.binaries, a.datas, kivymd_datas, ...)

重新打包

修改完spec文件后,使用spec作为配置源执行打包命令:

pyinstaller main.spec

重新生成的exe即可正常运行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:24:03