Python Kivy:无法导入main main

时间:2016-02-11 04:35:09

标签: python python-2.7 import kivy

在阅读“使用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;文件,因为取出它会导致应用程序顺利运行。

有人可以解释为什么会这样吗?我能做些什么来解决它?

2 个答案:

答案 0 :(得分:2)

参考Kv Language docs。那个导入要求kivy将模块main作为main导入。如果没有模块main,则kivy将引发异常。

答案 1 :(得分:2)

当我从他的第4个kivy教程做例子时,我遇到了一些问题,因为我使用了不同的名字。

因此,在您的情况下,如果您的文件是Download.py,则该行应为:

#:import main Download