Mac 上的 KivyMD:运行 kitchen_sink 在 kivytoast.py 中引发错误

KivyMD on a Mac: running kitchen_sink raises an error in kivytoast.py

在 Macbook Pro (Catalina) 上,Python 3.8,有兴趣使用 KivyMD 在 Kivy 中开发 Android 应用程序。我按照以下步骤安装 KivyMD:

所有这些 运行 无缝衔接,没有任何障碍或错误。 pip freeze 显示以下已安装的项目:

我正在关注 Codemy 视频教程并注意到演示者的 pip freeze 显示了另外 4 个条目:

CD 进入 /demos/kitchen_sink 文件夹,运行 'python3 main.py' 失败,引发此错误,回溯的最后几行似乎集中在名为 kivytoast.py:

   File "main.py", line 144, in <module>
     KitchenSinkApp().run()
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivy/app.py", line 949, in run
     self._run_prepare()
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivy/app.py", line 944, in _run_prepare
     self.dispatch('on_start')
   File "_event.pyx", line 709, in kivy._event.EventDispatcher.dispatch
   File "main.py", line 65, in on_start
     Builder.load_file(
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivy/lang/builder.py", line 306, in load_file
     return self.load_string(data, **kwargs)
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivy/lang/builder.py", line 373, in load_string
     parser = Parser(content=string, filename=fn)
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivy/lang/parser.py", line 402, in __init__
     self.parse(content)
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivy/lang/parser.py", line 508, in parse
     self.execute_directives()
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivy/lang/parser.py", line 472, in execute_directives
     mod = __import__(package)
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivymd/toast/__init__.py", line 11, in <module>
     from .kivytoast import toast
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivymd/toast/kivytoast/__init__.py", line 3, in <module>
     from .kivytoast import toast
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivymd/toast/kivytoast/kivytoast.py", line 72, in <module>
     class Toast(BaseDialog):
   File "/Users/robinhahn/PyProg/kvKivyMD/virtmd/lib/python3.8/site-packages/kivymd/toast/kivytoast/kivytoast.py", line 90, in Toast
     self, instance_label: Label, texture_size: list[int, int]
 TypeError: 'type' object is not subscriptable

还是个新手,不太确定如何从这里开始。 预计到达时间:我在 VSCode 中提出了这个问题,最后一句话:

列表[整数,整数]

带有波浪下划线,表明这是违规项目。我不知道 'type' object is not subscriptable 是什么意思或如何修复它。

感谢所有阅读和思考这个问题的人。

我现在正在上同一门课程,刚进入那个文件时遇到了同样的问题。我按照 'kivytoast.py' 文件的路径并更改了以下行(第 89 行):

    def label_check_texture_size(self, instance_label: Label, texture_size: list([int, int])) -> NoReturn:

kivymd 开发者似乎犯了一个错误,list[int, int] 而不是 list([int,int])。您也可以将其保留为 [int,int] 并且它的工作方式相同,因为它已经采用列表格式。祝你在剩下的课程中一切顺利!