2016-04-01 24 views
2

Ich hatte einigen Python 2.7-Code, die Kivy installiert ist und läuft perfekt auf einem Raspberry Pi verwendet, aber es stürzt auf dem BeagleBone Schwarz Rev C. Die Code-Importe:Ärger mit Python-Paket Kivy auf BeagleBone

from kivy import app 
from kivy import clock 
from kivy.uix import anchorlayout 
from kivy.uix import label 
from kivy.core import window 

I starte Python 2.7 auf BeagleBone Black Rev C mit Debian Jessie. Kivy Version 1.9.1. Hier ist der Fehler:

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

EDIT: Fortschritt! Ich musste Cython installieren. Nachdem ich das getan habe, habe ich die folgenden Fehler:

[ERROR ] [Window ] Unable to use pygame 
[ERROR ] [Window ] The module raised an important error: 'OpenGL not available' 
+0

Eigentlich funktionieren die Importe wie diese 'von kivy.app importieren App', 'von kivy.uix.anchorlayout importieren AnchorLayout', d. H. Klassen, nicht ganze Dateien. Probieren Sie sie auf die richtige Weise aus. – KeyWeeUsr

+0

@KeyWeeUsr: Was wäre daran richtiger? Es wird grundsätzlich empfohlen, "Import Spam" anstelle von "Spam Import Eier" zu tun: http://programmers.stackexchange.com/questions/187403/import-module-vs-from-module-import-function – Wolph

+0

@Wolph Nun, Ich habe seinen Code nicht gesehen, also ist nichts falsch mit diesen Importen, aber er könnte etwas in den Code einschrauben, weil er sie benutzt - rufen Sie eine Funktion auf, die nicht direkt aufgerufen werden soll, "überschreiben" Sie eine Klasse und erhalten Sie Fehler . – KeyWeeUsr

Antwort

1

Der einfachste Weg Kivy Pakete auf Debian ist durch Hinzufügen des Kivy Repository zu installieren.

Detaillierte Anleitungen finden Sie hier: https://kivy.org/docs/installation/installation-linux.html

Effektiv es darum geht die folgende Zeile mit denen Sie Ihre /etc/apt/sources.list:

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

Und diesen Befehl ausführen nach:

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

Nach dass Sie Kivy installieren können:

sudo apt-get install python-kivy 
+0

Okay, ich versuche Kivy zu deinstallieren, als ich es mit pip install Kivy installiert habe. Wenn ich 'Python -c 'importieren kivy; print (kivy .__ Pfad __) '' Ich erhalte:' [INFO] [Logger] Record log in /root/.kivy/logs/kivy_16-04-01_11.txt [INFO] [Kivy] v1.9.1 [INFO ] [Python] v2.7.9 (Standard, 1. März 2015, 13:48:22) [GCC 4.9.2] ['/usr/local/lib/python2.7/dist-packages/kivy'] 'aber wenn ich 'sudo apt-get entfernen - purge python-kivy' bekomme ich eine Nachricht 'Paket 'python-kivy' ist nicht installiert, also nicht entfernt ' – interwebjill

+0

kivy erscheint auch in der Pip-Liste – interwebjill

+0

Ich bin mir nicht sicher, wo pip installiert kivy auf debian, vielleicht ist diese Datei die von pip installierte. Unabhängig davon ist es sicher, dieses Verzeichnis zu entfernen und das Paket neu zu installieren, wenn Sie sicher sein wollen, dass Sie die richtige Version haben. – Wolph