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
相关产品推荐
相关产品推荐

