【问题标题】:Trouble with Python package Kivy on BeagleBoneBeagleBone 上的 Python 包 Kivy 出现问题
【发布时间】: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 eggsprogrammers.stackexchange.com/questions/187403/…
  • @Wolph 好吧,我没有看到他的代码,所以这些导入通常没有问题,但由于他使用它们的方式,他可能会在代码中搞砸一些东西 - 调用一些不应该的函数直接调用,“覆盖”一个类并得到错误。
  • 这都是很好的信息,但我认为问题与无法访问 OpenGL 有关。

标签: python kivy beagleboneblack


【解决方案1】:

在 Debian 上安装 Kivy 软件包的最简单方法是添加 Kivy 存储库。

详细说明可以在这里找到:https://kivy.org/docs/installation/installation-linux.html

实际上,它归结为将以下行添加到您的/etc/apt/sources.list

deb http://ppa.launchpad.net/kivy-team/kivy/ubuntu trusty main

然后运行这个命令:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A863D2D6

之后你可以安装 Kivy:

sudo apt-get install python-kivy

【讨论】:

  • 好的,所以我正在尝试卸载 Kivy,因为我使用 pip install Kivy 安装了它。当我python -c 'import kivy; print(kivy.__path__)' 我得到:[INFO ] [Logger ] Record log in /root/.kivy/logs/kivy_16-04-01_11.txt [INFO ] [Kivy ] v1.9.1 [INFO ] [Python ] v2.7.9 (default, Mar 1 2015, 13:48:22) [GCC 4.9.2] ['/usr/local/lib/python2.7/dist-packages/kivy'] 但是当我sudo apt-get remove --purge python-kivy 我收到一条消息Package 'python-kivy' is not installed, so not removed
  • kivy 也出现在点子列表中
  • 我不确定 pip 在 debian 上安装 kivy 的位置,也许该文件是 pip 安装的文件。无论如何,如果您想确保您拥有正确的版本,删除该目录并重新安装软件包是安全的。
猜你喜欢
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
相关资源
最近更新 更多