Kivy atlas für zu Speicherzugriffsfehler

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
Antworten
mothome
User
Beiträge: 17
Registriert: Donnerstag 20. Oktober 2016, 13:56

Hallo zusammen,

ich versuche wie im Tutorial von http://radar.oreilly.com/2014/05/theming-in-kivy.html das Theme unter Kivy anzupassen.

leider bekomme ich bei:

Code: Alles auswählen

atlas = Atlas("mytheme/myatlas.atlas") 
immer einen Speicherzugriffsfehler. Ohne weiteren Kommentare

Das System: Raspbian Buster mit Python 3.7
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich waere ja immer skeptisch bei relativen Pfadnamen, die muessen dann schon mit dem working-directory zusammenpassen. Das wuerde ich also testweise mal absolut angeben. Ansonsten kannst du mal sowas in der Art machen:

Code: Alles auswählen

$ gdb python
(gdb) set args /pfad/zum/skript.py
(gdb) run
... Absturz
(gdb) bt
Da kommt ein Stacktrace bei rum. Der wird nicht so besonders super sein, weil du keine Debug-Symbole fuer die diversen Executables hast - aber poste den trotzdem mal, da kann man ggf. etwas draus ablesen.

Und zur Erinnerung, bevor es wieder Entaeuschungen gibt: Kivy hat Entwickler und Bug-Tracker etc, mit denen man Kontakt aufnehmen kann. Und nicht jeder Forist hier hat jedes erdenkliche Stueck Software das jemals fuer Python geschrieben wurde auf jedem im Universum denkbaren System ausprobiert und ist damit intim geworden. Es kann also sein, das wir nicht helfen koennen, und du da wieder "falsch gedacht" hast. Und das wollen wir ja nicht.
mothome
User
Beiträge: 17
Registriert: Donnerstag 20. Oktober 2016, 13:56

So, debugger laufen lassen:
Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) bt
#0 0x00000000 in ?? ()
#1 0xb65924f4 in __pyx_f_4kivy_8graphics_12opengl_utils_gl_get_version (__pyx_skip_dispatch=__pyx_skip_dispatch@entry=0)
at /tmp/pip-wheel-dcud3qs9/Kivy/kivy/graphics/opengl_utils.c:5179
#2 0xb6594458 in __pyx_f_4kivy_8graphics_12opengl_utils_gl_get_version_major (__pyx_skip_dispatch=<optimized out>)
at /tmp/pip-wheel-dcud3qs9/Kivy/kivy/graphics/opengl_utils.c:5672
#3 0xb5d73a8c in __pyx_pf_4kivy_8graphics_7texture_2texture_create_from_data (__pyx_self=<optimized out>,
__pyx_v_mipmap=0x3b7518 <_Py_FalseStruct>,
__pyx_v_im=<optimized out>)
at /tmp/pip-wheel-dcud3qs9/Kivy/kivy/graphics/texture.c:10124
#4 __pyx_pw_4kivy_8graphics_7texture_3texture_create_from_data (
__pyx_self=<optimized out>, __pyx_args=<optimized out>,
__pyx_kwds=<optimized out>)
at /tmp/pip-wheel-dcud3qs9/Kivy/kivy/graphics/texture.c:9941
#5 0x001bebf8 in _PyMethodDef_RawFastCallKeywords ()
#6 0x0011c0a4 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
Und ich bin nicht enttäuscht, wenn mir keiner helfen kann. (Na vielleicht ein bisschen). Ist halt dann so.
Aber von der Seite anmachen wegen einer Frage lass ich mich dann doch nicht.... :oops:
Hat aber nis mit diesem Thema zu tun, sondern mit meinem letzte Kivy-Threat
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

Der Frame des Absturz ist #1 (#0 sieht nicht so sinnvoll aus). Es sieht also so aus, als ob da etwas mit dem OpenGL-Setup (noch) nicht korrekt ist. Kommt die in

https://github.com/kivy/kivy/blob/fbc4d ... s.pyx#L273

beschriebene Fehlermeldung irgendwo in einem Log-Output vor? Wenn nicht, dann ist das ein Zeichen dafuer, dass cgl.glGetString(GL_VERSION) schon kracht. Das hat dann wie gesagt was mit OpenGL zu tun. Ggf. muss dieser Atlas zu einem spaeteren Zeitpunkt angelegt werden. Ich wuerde mir mal Beispiele die das auch machen anschauen, und das mit deinem eigenen Vorgehen abgleichen.
mothome
User
Beiträge: 17
Registriert: Donnerstag 20. Oktober 2016, 13:56

Ich hab mal entgegen dem Beispiel von O'Reilly den super Aufruf vor die atlas Zuweisung gesetzt. Fehler weg!
Hätte ich auch selbst drauf kommen können :roll:

Wobei ich nicht verstehe, was Atlas mit OpenGL zu tun hat :shock:

Danach musste ich feststellen, dass der append nicht funktionieren wird, da ich Keys dann doppelt habe. Auch da hätte ich vorher darauf kommen können :roll:

Again what learned!
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@mothome: Kivy nutzt OpenGL zum zeichnen der GUI, da hat also *alles* was mit OpenGL zu tun. 🙂
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten