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

Kivy应用添加中文字体后出现SystemError问题求助

解决Kivy中添加文泉驿微米黑字体后触发的SystemError问题

问题分析

报错指向Kivy内置style.kv的xy: self.pos,但注释该行无效,且移除字体注册代码后仍报错,说明问题并非字体注册本身,而是Kivy内部ObservableReferenceList的切片操作异常,大概率和依赖版本不兼容、缓存损坏有关。

解决方案

  • 清理Kivy缓存
    缓存损坏可能导致渲染逻辑异常,执行命令删除缓存目录:

    rm -rf ~/.kivy/cache
    
  • 校验Kivy与KivyMD版本兼容性
    版本不匹配是这类底层异常的常见原因,先查看当前版本:

    pip list | grep -E "kivy|kivymd"
    

    卸载不兼容版本后重装匹配组合(示例为稳定兼容版本):

    pip uninstall kivy kivymd -y
    pip install kivy==2.1.0 kivymd==1.1.1
    
  • 正确注册字体(若需保留字体)
    确保字体注册代码在App启动前执行,且路径正确:

    from kivy.core.text import LabelBase
    from kivy.app import App
    
    # 必须在App类定义前完成注册
    LabelBase.register(name='WenQuanYi Micro Hei', fn_regular='/usr/share/fonts/truetype/wqy/wqy-microhei.ttc')
    
    class DigitalDecorApp(App):
        def __init__(self, **kwargs):
            super().__init__(**kwargs)
            self.filemanager = MDFileManager(select_path=self.select_path, exit_manager=self.exit_manager, preview=True)
    
        # 其他业务代码...
    
    if __name__ == '__main__':
        DigitalDecorApp().run()
    
  • 确认Python环境一致性
    确保使用的Python3.9环境未混用全局包,若用虚拟环境,先激活再运行应用:

    source 你的虚拟环境目录/bin/activate
    python digital_decor_app4.py
    

注意事项

不要修改Kivy库自带的style.kv源码,这类修改会破坏库的完整性,且无法从根本解决底层异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 06:36:37