【发布时间】:2016-04-01 02:33:36
【问题描述】:
我有一些使用 Kivy 的 python 2.7 代码安装并在 Raspberry Pi 上完美运行,但它在 BeagleBone Black Rev C 上崩溃。代码导入:
from kivy import app
from kivy import clock
from kivy.uix import anchorlayout
from kivy.uix import label
from kivy.core import window
我正在使用 Debian Jessie 在 BeagleBone Black Rev C 上运行 python 2.7。 Kivy 版本 1.9.1。这是错误:
[INFO ] [Logger ] Record log in /root/.kivy/logs/kivy_16-04-01_6.txt
[INFO ] [Kivy ] v1.9.1
[INFO ] [Python ] v2.7.9 (default, Mar 1 2015, 13:48:22)
[GCC 4.9.2]
[INFO ] [Factory ] 179 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] [Text ] Provider: sdl2
[INFO ] [OSC ] using <multiprocessing> for socket
[INFO ] [Window ] Provider: sdl2(['window_egl_rpi'] ignored)
error: XDG_RUNTIME_DIR not set in the environment.
[CRITICAL] [Window ] Unable to find any valuable Window provider at all!
egl_rpi - ImportError: cannot import name bcm
File "/usr/lib/python2.7/dist-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_egl_rpi.py", line 12, in <module>
from kivy.lib.vidcore_lite import bcm, egl
sdl2 - RuntimeError: No available video device
File "/usr/lib/python2.7/dist-packages/kivy/core/__init__.py", line 67, in core_select_lib
cls = cls()
File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_sdl2.py", line 138, in __init__
super(WindowSDL, self).__init__()
File "/usr/lib/python2.7/dist-packages/kivy/core/window/__init__.py", line 722, in __init__
self.create_window()
File "/usr/lib/python2.7/dist-packages/kivy/core/window/window_sdl2.py", line 237, in create_window
self.fullscreen, resizable, state)
File "_window_sdl2.pyx", line 80, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window (kivy/core/window/_window_sdl2.c:1810)
File "_window_sdl2.pyx", line 55, in kivy.core.window._window_sdl2._WindowSDL2Storage.die (kivy/core/window/_window_sdl2.c:1460)
x11 - ImportError: No module named window_x11
File "/usr/lib/python2.7/dist-packages/kivy/core/__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
[CRITICAL] [App ] Unable to get a Window, abort.
编辑:进步!我需要安装 Cython。一旦我这样做了,我得到了以下错误:
[ERROR ] [Window ] Unable to use pygame
[ERROR ] [Window ] The module raised an important error: 'OpenGL not available'
【问题讨论】:
-
实际上,导入是这样工作的
from kivy.app import App,from kivy.uix.anchorlayout import AnchorLayout即类,而不是整个文件。以正确的方式尝试它们。 -
@KeyWeeUsr:那有什么更正确的呢?建议使用
import spam而不是from spam import eggs:programmers.stackexchange.com/questions/187403/… -
@Wolph 好吧,我没有看到他的代码,所以这些导入通常没有问题,但由于他使用它们的方式,他可能会在代码中搞砸一些东西 - 调用一些不应该的函数直接调用,“覆盖”一个类并得到错误。
-
这都是很好的信息,但我认为问题与无法访问 OpenGL 有关。
标签: python kivy beagleboneblack