首页 > 解决方案 > 如何解决 kivy python 中的“AttributeError”?

问题描述

我正在制作一个 Python kivy 应用程序,并在我运行的每个代码中都出现此属性错误。

这是python代码。

from kivy.app import App
from kivy.lang import Builder

kv = Builder.load_string("login.kv")


class MyMainApp(App):
    def build(self):
        return kv


if __name__ == '__main__':
    MyMainApp().run()

这是.kv 代码

#:import FirebaseLoginScreen firebaseloginscreen.FirebaseLoginScreen
#:import utils kivy.utils
FloatLayout:
    canvas.before:
        Color:
            rgb: 1,1,1
        Rectangle:
            size: self.size
            pos: self.pos
    FirebaseLoginScreen:
        size_hint: 1,1
        pos_hint: {"top": 1, "right": 1}
        web_api_key: "AIzaSyB8JZWB1gzdDq3YAFXwHaJkXyAyyJ6uR44"
        primary_color: utils.get_color_from_hex("#EE682A")
        secondary_color: utils.get_color_from_hex("#060809")
        tertiary_color: utils.get_color_from_hex("#434343")

        on_login_success:
            print("Success")

这是我运行它时遇到的错误。

 Traceback (most recent call last):
   File "C:/Users/aayus/Desktop/PersonalProject/Cubing/loginpy.py", line 4, in <module>
     kv = Builder.load_string("login.kv")
   File "C:\Users\aayus\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\lang\builder.py", line 399, in load_string
     widget = Factory.get(parser.root.name)(__no_builder=True)
   File "C:\Users\aayus\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\factory.py", line 130, in __getattr__
     raise AttributeError
 AttributeError

Process finished with exit code 1

我该如何解决这个错误?

标签: pythonpython-3.xkivy

解决方案


Traceback (most recent call last):
   File "C:/Users/aayus/Desktop/PersonalProject/Cubing/loginpy.py", line 5, in <module>
     kv = Builder.load_file("login.kv")
   File "C:\Users\aayus\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\lang\builder.py", line 301, in load_file
     return self.load_string(data, **kwargs)
   File "C:\Users\aayus\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\lang\builder.py", line 405, in load_string
     rule_children=rule_children)
   File "C:\Users\aayus\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\lang\builder.py", line 616, in _apply_rule
     cls = Factory_get(cname)
   File "C:\Users\aayus\AppData\Local\Programs\Python\Python36\lib\site-packages\kivy\factory.py", line 131, in __getattr__
     raise FactoryException('Unknown class <%s>' % name)
 kivy.factory.FactoryException: Unknown class <FirebaseLoginScreen>

推荐阅读