Python 属性错误:';超级';对象没有属性'__getattr';

Python 属性错误:';超级';对象没有属性'__getattr';,python,kivy,kivy-language,Python,Kivy,Kivy Language,我一直在互联网上寻找这个问题的解决方案,但仍然找不到正确的解决方案。 有很多通用的答案,但没有一个能解决我的问题 我试图用kivy和python 3.6.4构建一个简单的时钟应用程序,但每次运行main.py时,我都会遇到以下错误: AttributeError:“超级”对象没有属性“getattr” 我的主“MAIN.py”文件如下: from kivy.app import App from kivy.clock import Clock from kivy.core.text i

我一直在互联网上寻找这个问题的解决方案,但仍然找不到正确的解决方案。 有很多通用的答案,但没有一个能解决我的问题

我试图用kivy和python 3.6.4构建一个简单的时钟应用程序,但每次运行
main.py
时,我都会遇到以下错误:

AttributeError:“超级”对象没有属性“getattr

我的主“MAIN.py”文件如下:

 from kivy.app import App

 from kivy.clock import Clock

 from kivy.core.text import LabelBase

 from kivy.core.window import Window

 from kivy.utils import get_color_from_hex

 from time import strftime


 class ClockApp(App):

    def on_start(self):
        Clock.schedule_interval(self.update, 0)

    def update(self, nap):

        self.root.ids.time.text = strftime('[b]%H[/b]:%M:%S')


 if __name__ == '__main__':
     Window.clearcolor = get_color_from_hex('#101216')
     LabelBase.register(name='Roboto',
                        fn_regular='Roboto-Thin.ttf',
                        fn_bold='Roboto-Medium.ttf')
     ClockApp().run() 
 <Label>:
     font_name: 'Roboto'
     font_size: 60
     markup: True

 BoxLayout:
     orientation: 'vertical'

 Label:
     id: time
     text: '[b]00[/b]:00:00'
我的“clock.kv”文件如下:

 from kivy.app import App

 from kivy.clock import Clock

 from kivy.core.text import LabelBase

 from kivy.core.window import Window

 from kivy.utils import get_color_from_hex

 from time import strftime


 class ClockApp(App):

    def on_start(self):
        Clock.schedule_interval(self.update, 0)

    def update(self, nap):

        self.root.ids.time.text = strftime('[b]%H[/b]:%M:%S')


 if __name__ == '__main__':
     Window.clearcolor = get_color_from_hex('#101216')
     LabelBase.register(name='Roboto',
                        fn_regular='Roboto-Thin.ttf',
                        fn_bold='Roboto-Medium.ttf')
     ClockApp().run() 
 <Label>:
     font_name: 'Roboto'
     font_size: 60
     markup: True

 BoxLayout:
     orientation: 'vertical'

 Label:
     id: time
     text: '[b]00[/b]:00:00'
:
字体名称:“Roboto”
字体大小:60
标记:正确
盒子布局:
方向:“垂直”
标签:
id:时间
文字:'[b]00[/b]:00:00'
这是运行“main.py”时出现的错误。

[INFO][Logger]在C:\Users\Alessandro\.kivy\logs\kivy_18-05-19_4.txt中记录日志
[INFO][Kivy]v1.10.0
[INFO][Python]v3.6.4(v3.6.4:d48eceb,2017年12月19日,06:04:45)[MSC v.1900 32位(英特尔)]
[信息][工厂]加载了194个符号
[信息][图像]提供商:img_-tex、img_-dds、img_-sdl2、img_-pil、img_-gif(img_-ffpyplayer忽略)
[信息][文本]提供商:sdl2
[信息][OSC]用于插座
[信息][窗口]提供程序:sdl2
[信息][GL]使用“OpenGL”图形系统
[INFO][GL]GLEW初始化成功
[信息][GL]已使用后端
[信息][GL]OpenGL版本
[信息][GL]OpenGL供应商
[INFO][GL]OpenGL渲染器
[信息][GL]OpenGL解析版本:4,4
[信息][GL]明暗处理版本
[信息][GL]纹理最大大小
[信息][GL]纹理最大单位
[信息][着色器]片段着色器:
[信息][着色器]顶点着色器:
[信息][窗口]自动添加sdl2输入提供程序
[信息][窗口]不允许使用虚拟键盘,单模,未对接
[INFO][Base]启动应用程序主循环
[INFO][Base]正在退出应用程序。。。
回溯(最近一次呼叫最后一次):
文件“kivy\properties.pyx”,第836行,在kivy.properties.observedict.\uuuu getattr\uuuu(kivy\properties.c:12509)中
KeyError:“时间”
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Users\Alessandro\Desktop\Clock\main.py”,第24行,在
ClockApp().run()
文件“C:\Users\Alessandro\AppData\Local\Programs\Python\Python36-32\lib\site packages\kivy\app.py”,第828行,正在运行
runTouchApp()
runTouchApp中的第504行文件“C:\Users\Alessandro\AppData\Local\Programs\Python\Python36-32\lib\site packages\kivy\base.py”
EventLoop.window.mainloop()
文件“C:\Users\Alessandro\AppData\Local\Programs\Python\Python36-32\lib\site packages\kivy\core\window\window\u sdl2.py”,第663行,在mainloop中
self._mainloop()
文件“C:\Users\alesandro\AppData\Local\Programs\Python\Python36-32\lib\site packages\kivy\core\window\window\u sdl2.py”,第405行,在mainloop中
EventLoop.idle()
文件“C:\Users\alesandro\AppData\Local\Programs\Python\Python36-32\lib\site packages\kivy\base.py”,第339行,处于空闲状态
时钟滴答作响
文件“C:\Users\Alessandro\AppData\Local\Programs\Python\Python36-32\lib\site packages\kivy\clock.py”,第581行,勾选
self.\u进程\u事件()
文件“kivy\\u clock.pyx”,第367行,在kivy.\u clock.CyClockBase.\u process\u events(kivy\\u clock.c:7700)中
文件“kivy\\u clock.pyx”,第397行,在kivy.\u clock.CyClockBase.\u process\u events(kivy\\u clock.c:7577)中
文件“kivy\\u clock.pyx”,第395行,在kivy.\u clock.CyClockBase.\u process\u events(kivy\\u clock.c:7498)中
文件“kivy\\u clock.pyx”,第167行,在kivy.\u clock.ClockEvent.tick(kivy\\u clock.c:3490)中
更新中第16行的文件“C:\Users\Alessandro\Desktop\Clock\main.py”
self.root.ids.time.text=strftime('[b]%H[/b]:%M:%S')
文件“kivy\properties.pyx”,第839行,位于kivy.properties.observedict.\uuuu getattr\uuuu(kivy\properties.c:12654)
AttributeError:“super”对象没有属性“\uuu getattr\uuuu”

您的.kv的结构看起来不正确,例如,据观察,有许多根可能会导致您出现另一个问题,因此如果您希望得到一个响应,告诉您问题的原因,您应该改进缩进

相反,我将向您展示一个正确的.kv,其中根是BoxLayout,您的孩子是带有id time的标签:

时钟.kv

<Label>:
    font_name: 'Roboto'
    font_size: 60
    markup: True

BoxLayout:
    orientation: 'vertical'

    Label:
        id: time
        text: '[b]00[/b]:00:00'

谢谢你,艾伦斯克!现在我知道了如何正确构建.kv文件。我已经修改了kv文件和主文件,但不幸的是,我仍然得到与以前相同的错误。原因可能是什么?我还注意到,如果我在“def update_time(self,*args)”中修改“def update(self,*args):”我会收到另一个错误:“AttributeError:'ClockApp'对象没有属性“update”。”“而且我没有得到和以前一样的错误。你能帮忙吗?谢谢lot@Alex您是否完全复制了我所展示的代码?我发现您没有太多地考虑缩进,在python中这是非常重要的。通过github、drive、dropbox等共享您的文件。还请告诉我Python、Kivy的版本以及您是否正在使用某些IDE。@Alex如果您将
def update(self,*args)
更改为
def update\u time(self,*args)
您还必须将
Clock.schedule\u interval(self.update,0)
更改为
Clock.schedule\u interval(self.update_time,0)
谢谢eyllanesc!在这张图片中,我向您展示了一切:在桌面上的“Clock”文件夹中,我有两个文件:“Clock.kv”和“main”,均在python 3.6.4上。我已在pyhton IDLE 3.6 32位上编写了它们。我已在2周前使用官方网站上显示的说明安装了kivy。感谢您的帮助OK,这是文件夹: