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

拆分Kivy应用类至多文件时遇AttributeError:JsonStoreManager无get_instance属性

问题描述

将Kivy应用的类拆分到多个文件中后,调用JsonStoreManager.get_instance()时出现错误,提示该方法不是JsonStoreManager类的属性。

模块代码(假设文件名为json_store_manager.py):

from kivy.storage.jsonstore import JsonStore

class JsonStoreManager:
    _instance = None

    @classmethod
    def get_instance(cls):
        if cls._instance is None:
            cls._instance = JsonStore("user_info.json")
        return cls._instance

主文件调用代码:

self.stored_data = JsonStoreManager.get_instance()
可能的原因及解决方法
  • 导入方式错误
    如果模块文件名为json_store_manager.py,主文件的导入语句可能不符合规范。比如直接写import JsonStoreManager会把整个模块当作对象,而非导入其中的类。正确导入方式二选一:

    # 方式1:直接导入类
    from json_store_manager import JsonStoreManager
    
    # 方式2:导入模块后通过模块访问类
    import json_store_manager
    self.stored_data = json_store_manager.JsonStoreManager.get_instance()
    
  • 拼写或大小写不一致
    检查模块文件名、类名的拼写和大小写是否完全匹配。比如模块文件名是json_store_manager.py但导入时写成JsonStoreManager,或者类名误写为JsonStoreManeger,都会导致无法正确识别类或方法。

  • 循环导入问题
    若主文件和模块之间存在循环导入(比如主文件导入模块,模块又导入主文件内的内容),会导致类无法正常加载。检查两个文件的导入语句,消除循环依赖。

  • 模块不在Python搜索路径中
    若模块文件不在当前工作目录或Python的默认搜索路径里,Python会找不到该模块。可以将模块所在目录添加到搜索路径,或确保模块与主文件在同一目录下。示例:

    import sys
    sys.path.append("/你的模块所在目录绝对路径")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 06:29:52