试图第一次运行KIVY

use*_*165 7 python kivy

我正试图第一次运行kivy.我使用默认程序.

from kivy.app import App
from kivy.uix.widget import Widget


class PongGame(Widget):
    pass


class PongApp(App):
    def build(self):
        return PongGame()


if __name__ == '__main__':
    PongApp().run()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

##################################
done bootstraping kivy...have fun!\n
running "python.exe C:\Python27\hello.py" \n
Traceback (most recent call last):
  File "C:\Python27\hello.py", line 1, in <module>
    from kivy.app import App
ImportError: No module named kivy.app
Press any key to continue . . .
Run Code Online (Sandbox Code Playgroud)

很多人在网上提出了这个问题,但没有人提到正确的解决方案.

Eri*_*lun 14

更新:基于您正在获得的错误 - 您刚刚粘贴的错误 - 在我下面的原始回复之后 - 您似乎不仅缺少PyGame而且还缺少Kivy本身.继续前进吧pip install kivy.

但在你这样做之前,我建议你看看virtualenv并在为该项目创建的virtualenv中安装特定于该项目的所有Python包.如果您不想这样,则必须运行sudo pip install kivy以全局安装Kivy(假设您使用的是OS X或Linux).在Windows上,sudo不应该需要.

(另外,我确信下面的信息也很有用 - 因为你甚至没有Kivy,它必定意味着你会遇到问题因为没有PyGame曾经安装过Kivy.)

原始答案:

精简版:

你错过了PyGame,这是Kivy的依赖.

长版:

既然你没有告诉我们错误是什么,我继续在我的OS X 10.8机器上运行你的代码,并得到了这个:

$ python main.py
[INFO   ] Kivy v1.7.2
...
[CRITICAL] [Window      ] Unable to find any valuable Window provider at all!
[CRITICAL] [App         ] Unable to get a Window, abort.
Run Code Online (Sandbox Code Playgroud)

谷歌搜索该错误使我登陆http://kivy.org/docs/installation/troubleshooting-macosx.html.

所以我继续在http://juliaelman.com/blog/2013/04/02/installing-pygame-on-osx-mountain-lion/的帮助下安装PyGame ; 除了我在virtualenv中安装它:

$ pip install hg+http://bitbucket.org/pygame/pygame
Run Code Online (Sandbox Code Playgroud)

之后:

$ python yourcode.py
[INFO   ] Kivy v1.7.2
Purge log fired. Analysing...
Purge finished !
[INFO   ] [Logger      ] Record log in /Users/erik.allik/.kivy/logs/kivy_13-10-01_2.txt
[INFO   ] [Factory     ] 144 symbols loaded
[DEBUG  ] [Cache       ] register <kv.lang> with limit=None, timeout=Nones
[DEBUG  ] [Cache       ] register <kv.image> with limit=None, timeout=60s
...
[INFO   ] [OSC         ] using <multiprocessing> for socket
[DEBUG  ] [Base        ] Create provider from mouse
[INFO   ] [Base        ] Start application main loop
Run Code Online (Sandbox Code Playgroud)

我得到了一个漂亮的Kivy窗口!