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

PyInstaller打包Kivy出现‘NoneType’无load_module属性报错如何修复

报错原因

该报错是旧版本Kivy的导入逻辑与PyInstaller冻结环境的导入器不兼容导致:PyInstaller的自定义导入器没有实现对应find_module方法,调用后返回None,调用load_module就触发空指针错误。

修复方案

  • 方案1:升级依赖版本(优先推荐)
    直接将Kivy升级到2.1.0及以上版本,该版本官方已经适配了PyInstaller的导入逻辑,无需额外修改即可正常打包。如果同时将PyInstaller升级到5.0及以上版本,兼容性会更好。
  • 方案2:添加隐藏导入配置
    如果项目无法升级Kivy版本,打包时添加--hidden-import参数补全Kivy的核心模块导入即可:
    pyinstaller --hidden-import kivy.core.window --hidden-import kivy.core.image --hidden-import kivy.core.text --hidden-import kivy.core.audio 你的入口文件.py
    
    如果你使用spec文件打包,直接将上述模块添加到hiddenimports列表中即可。
  • 方案3:修改Kivy源码兼容
    如果前两种方案都不适用,找到报错的kivy\__init__.py文件,将触发报错的行:
    mod = importer.find_module(modname).load_module(modname)
    
    替换为如下兼容代码:
    found_importer = importer.find_module(modname)
    if found_importer:
        mod = found_importer.load_module(modname)
    else:
        import importlib
        mod = importlib.import_module(modname)
    

验证提示

修复后优先使用--onedir(文件夹)模式打包测试,确认运行无报错后再使用--onefile(单文件)模式打包,避免其他依赖缺失干扰问题排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:45:00