在 Macbook Pro (Catalina) 上,Python 3.8,有兴趣使用 KivyMD 在 Kivy 中开发 Android 应用程序。我采取了以下步骤来安装 KivyMD:
- 创建虚拟环境(virtmd),然后激活它(source /virtmd/bin/activate)
- 在这个虚拟环境中,通过 pip 安装了以下内容:Pillow, kivy
- 根据 GitHub 页面上建议的链接 git-cloned KivyMD
- 运行 pip install 。
所有这一切都无缝运行,没有任何障碍或错误。pip freeze 显示以下已安装项目:
- 证书==2021.5.30
- 字符集规范化器==2.0.4
- docutils==0.17.1
- idna==3.2
- 基维==2.0.0
- 基维花园==0.1.4
- kivymd @ file:///Users/robinhahn/PyProg/kvKivyMD/KivyMD
- 枕头==8.3.1
- Pygments==2.9.0
- 请求==2.26.0
- urllib3==1.26.6
我正在关注 Codemy 视频教程,并注意到演示者的 pip freeze 显示了另外 4 个条目:
- chardet==4.0.0
- kivy-deps.angle==0.3.0
- kivy-deps.glew==0.3.0
- kivy-deps.sdl2==0.3.1
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
仍然有点新手,并不确定如何从这里开始。ETA:我在 VSCode 中提出了这个问题,最后一句话:
列表[int, int]
带有波浪线下划线,表明它是有问题的项目。我不知道什么“类型”对象不可下标或如何修复它。
感谢所有阅读和思考这个问题的人。