在阅读“使用Python创建Kivy应用程序”一书时,它说到
"Next, update the imports in weather.kv to import this main module instead of the
ListItemButton class; see Example 3-7.
Example 3-7. Importing a custom class from main
#: import main main
#: import ListAdapter kivy.adapters.listadapter.ListAdapter"
应该放在.kv文件中运行。但是,我收到以下错误:
File "/home/peter-brown/kivytest.py", line 58, in <module>
DownloadApp().run()
File "/usr/lib/python2.7/dist-packages/kivy/app.py", line 797, in run
self.load_kv(filename=self.kv_file)
File "/usr/lib/python2.7/dist-packages/kivy/app.py", line 594, in load_kv
root = Builder.load_file(rfilename)
File "/usr/lib/python2.7/dist-packages/kivy/lang.py", line 1749, in load_file
return self.load_string(data, **kwargs)
File "/usr/lib/python2.7/dist-packages/kivy/lang.py", line 1796, in load_string
parser = Parser(content=string, filename=fn)
File "/usr/lib/python2.7/dist-packages/kivy/lang.py", line 1185, in __init__
self.parse(content)
File "/usr/lib/python2.7/dist-packages/kivy/lang.py", line 1284, in parse
self.execute_directives()
File "/usr/lib/python2.7/dist-packages/kivy/lang.py", line 1250, in execute_directives
mod = __import__('.'.join(package.split('.')[:-1]))
ValueError: Empty module name
TLDR:我收到一条错误消息,指出main.py文件是一个emtpy模块。 它似乎只是主要的&#39;文件,因为取出它会导致应用程序顺利运行。
有人可以解释为什么会这样吗?我能做些什么来解决它?
答案 0 :(得分:2)
参考Kv Language docs。那个导入要求kivy将模块main作为main导入。如果没有模块main,则kivy将引发异常。
答案 1 :(得分:2)
当我从他的第4个kivy教程做例子时,我遇到了一些问题,因为我使用了不同的名字。
因此,在您的情况下,如果您的文件是Download.py,则该行应为:
#:import main Download