第一次尝试运行 KIVY

Posted

技术标签:

【中文标题】第一次尝试运行 KIVY【英文标题】:Trying to run KIVY, for the first time 【发布时间】:2013-10-07 10:34:45 【问题描述】:

我第一次尝试运行 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()

我收到此错误:

##################################
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 . . .

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

【问题讨论】:

“我得到这个错误” 什么错误?请提供完整的追溯 我已经提到了错误 好像没有安装。你在installation有什么烦恼吗?如果您运行 pydoc modules,则应该列出 Kivy @user2834165:我的回答解决了你的问题吗?如果是,最好接受它。 【参考方案1】:

更新:根据您收到的错误(您现在刚刚粘贴,在我下面的原始回复之后),您似乎不仅缺少 PyGame,而且还缺少 Kivy 本身。继续运行pip install kivy

但在您这样做之前,我建议您查看virtualenv 并将所有特定于该项目的 Python 包安装在为该项目创建的 virtualenv 中。如果你不想这样,你必须运行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.

通过谷歌搜索该错误,我找到了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

之后:

$ 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

然后我会弹出一个漂亮的 Kivy 窗口!

【讨论】:

是的,请参阅我答案开头的更新。此外,他只是在我发布了我的初始回复后才粘贴错误;在此之前,无法判断他在哪个平台上。另外,我已经告诉他安装 Kivy 以及如何安装,所以我不明白您评论的目的。 是的,对不起。忘了它!谢谢! @user2834165:该评论是针对其他人的,顺便说一句:) 不知道你应该对什么感到抱歉! 我收到此错误:Command "/usr/bin/python2.7 -c "import setuptools, tokenize;__file__='/tmp/pip-build-wrCJXo/kivy/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-R7LcPd-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-wrCJXo/kivy 有什么建议吗?【参考方案2】:

也许它更简单,它适合我。在 kivy 网页上为 Windows 操作系统提供了一个“便携包”,因此您不必在“系统”范围内安装任何东西。

然后他们解释了如何在“发送至”菜单上创建此“便携包”的快捷方式。我粘贴了 .bat 而不是它的快捷方式(从未说过我很聪明)而且我(显然)有完全相同的错误。如果我们可以称之为错误。

希望它也对你有用。

【讨论】:

以上是关于第一次尝试运行 KIVY的主要内容,如果未能解决你的问题,请参考以下文章

Kivy Apk Buildozer:ReferenceError:弱引用对象不再存在

使用屏幕管理器更新 kivy 标签

仅在 kivy 首次启动时显示设置屏幕

向 Kivy 添加小部件时如何确保功能正常

Kivy 标签文本未更新 - 仅在方法的最后一次更改时更新

Kivy 按钮背景图像大小