Kivy: Raspberry 3B+ 中的分段错误

创建于 2018-10-22  ·  44评论  ·  资料来源: kivy/kivy

版本

描述

我正在尝试执行演示app_with_kv.py但它始终显示segmentation fault错误。 我正在使用这里的 TFT 屏幕。

代码和日志

[INFO   ] [Logger      ] Record log in /home/pi/.kivy/logs/kivy_18-10-22_12.txt
[INFO   ] [Kivy        ] v1.11.0.dev0, git-916b77b, 20181022
[INFO   ] [Python      ] v3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516]
[INFO   ] [Factory     ] 184 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO   ] [Text        ] Provider: sdl2
[INFO   ] [Window      ] Provider: egl_rpi
[INFO   ] [GL          ] Using the "OpenGL ES 2" graphics system
[INFO   ] [GL          ] Backend used <sdl2>
Segmentation fault
RPi High SDL2 Confirmed

最有用的评论

有类似的问题。 出于某种原因,调用sdl2而不是后端的gl 。 我不知道是否有永久修复,但经过一段时间试图找到修复后,我能想出的唯一解决方案是在您导入 Kivy 之前在您的应用程序顶部添加 2 行。 应该是这样的:

import os
os.environ['KIVY_GL_BACKEND'] = 'gl'
import kivy

希望它会有所帮助。 祝你好运!

Ps 如果你想在 Windows 上运行你的应用程序,你可能需要注释os.environ['KIVY_GL_BACKEND'] = 'gl'否则它不会运行。

所有44条评论

有类似的问题。 出于某种原因,调用sdl2而不是后端的gl 。 我不知道是否有永久修复,但经过一段时间试图找到修复后,我能想出的唯一解决方案是在您导入 Kivy 之前在您的应用程序顶部添加 2 行。 应该是这样的:

import os
os.environ['KIVY_GL_BACKEND'] = 'gl'
import kivy

希望它会有所帮助。 祝你好运!

Ps 如果你想在 Windows 上运行你的应用程序,你可能需要注释os.environ['KIVY_GL_BACKEND'] = 'gl'否则它不会运行。

我在 Zero W 上遇到了同样的错误。 @goadik的建议为我修复了 3B+,还没有尝试过 Zero。

我还确认@goadik的解决方案有效! 而且我还指出,由于这是一个环境变量问题,您可以简单地导出变量,如下所示:

export KIVY_GL_BACKEND=gl

然后执行脚本。

SDL2 用于动态查找符号。
为了理解和解决问题,最好有一个回溯。
可以根据平台实现移动到 rpi 的 GL 后端,但我宁愿修复底层问题。

请使用gdb --args python main.py ,输入r ,然后当它崩溃时,执行bt all 。 把所有的东西都贴出来。

好的。 这是gdb --args python main.py的输出:

GNU gdb (Raspbian 7.12-6) 7.12.0.20161007-git
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from python3...(no debugging symbols found)...done.
(gdb) r
Starting program: /usr/bin/python3 main.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[INFO   ] [Logger      ] Record log in /home/pi/.kivy/logs/kivy_18-10-27_0.txt
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil, img_gif (img_ffpyplayer ignored)
[INFO   ] [Kivy        ] v1.11.0.dev0, git-916b77b, 20181022
[INFO   ] [Python      ] v3.5.3 (default, Sep 27 2018, 17:25:39) 
[GCC 6.3.0 20170516]
[INFO   ] [Factory     ] 184 symbols loaded
[DEBUG  ] [App         ] Loading kv <./main.kv>
[DEBUG  ] [App         ] kv <./main.kv> not found
[INFO   ] [Window      ] Provider: egl_rpi
[New Thread 0x74758470 (LWP 973)]
[New Thread 0x73dff470 (LWP 974)]
[New Thread 0x735ff470 (LWP 975)]
[New Thread 0x72dff470 (LWP 976)]
[DEBUG  ] [Window      ] Actual display size: 800x480
[INFO   ] [GL          ] Using the "OpenGL ES 2" graphics system
[DEBUG  ] [GL          ] glActiveTexture is not available
[DEBUG  ] [GL          ] glAttachShader is not available
[DEBUG  ] [GL          ] glBindAttribLocation is not available
[DEBUG  ] [GL          ] glBindBuffer is not available
[DEBUG  ] [GL          ] glBindFramebuffer is not available
[DEBUG  ] [GL          ] glBindRenderbuffer is not available
[DEBUG  ] [GL          ] glBindTexture is not available
[DEBUG  ] [GL          ] glBlendColor is not available
[DEBUG  ] [GL          ] glBlendEquation is not available
[DEBUG  ] [GL          ] glBlendEquationSeparate is not available
[DEBUG  ] [GL          ] glBlendFunc is not available
[DEBUG  ] [GL          ] glBlendFuncSeparate is not available
[DEBUG  ] [GL          ] glBufferData is not available
[DEBUG  ] [GL          ] glBufferSubData is not available
[DEBUG  ] [GL          ] glCheckFramebufferStatus is not available
[DEBUG  ] [GL          ] glClear is not available
[DEBUG  ] [GL          ] glClearColor is not available
[DEBUG  ] [GL          ] glClearStencil is not available
[DEBUG  ] [GL          ] glColorMask is not available
[DEBUG  ] [GL          ] glCompileShader is not available
[DEBUG  ] [GL          ] glCompressedTexImage2D is not available
[DEBUG  ] [GL          ] glCompressedTexSubImage2D is not available
[DEBUG  ] [GL          ] glCopyTexImage2D is not available
[DEBUG  ] [GL          ] glCopyTexSubImage2D is not available
[DEBUG  ] [GL          ] glCreateProgram is not available
[DEBUG  ] [GL          ] glCreateShader is not available
[DEBUG  ] [GL          ] glCullFace is not available
[DEBUG  ] [GL          ] glDeleteBuffers is not available
[DEBUG  ] [GL          ] glDeleteFramebuffers is not available
[DEBUG  ] [GL          ] glDeleteProgram is not available
[DEBUG  ] [GL          ] glDeleteRenderbuffers is not available
[DEBUG  ] [GL          ] glDeleteShader is not available
[DEBUG  ] [GL          ] glDeleteTextures is not available
[DEBUG  ] [GL          ] glDepthFunc is not available
[DEBUG  ] [GL          ] glDepthMask is not available
[DEBUG  ] [GL          ] glDetachShader is not available
[DEBUG  ] [GL          ] glDisable is not available
[DEBUG  ] [GL          ] glDisableVertexAttribArray is not available
[DEBUG  ] [GL          ] glDrawArrays is not available
[DEBUG  ] [GL          ] glDrawElements is not available
[DEBUG  ] [GL          ] glEnable is not available
[DEBUG  ] [GL          ] glEnableVertexAttribArray is not available
[DEBUG  ] [GL          ] glFinish is not available
[DEBUG  ] [GL          ] glFlush is not available
[DEBUG  ] [GL          ] glFramebufferRenderbuffer is not available
[DEBUG  ] [GL          ] glFramebufferTexture2D is not available
[DEBUG  ] [GL          ] glFrontFace is not available
[DEBUG  ] [GL          ] glGenBuffers is not available
[DEBUG  ] [GL          ] glGenerateMipmap is not available
[DEBUG  ] [GL          ] glGenFramebuffers is not available
[DEBUG  ] [GL          ] glGenRenderbuffers is not available
[DEBUG  ] [GL          ] glGenTextures is not available
[DEBUG  ] [GL          ] glGetActiveAttrib is not available
[DEBUG  ] [GL          ] glGetActiveUniform is not available
[DEBUG  ] [GL          ] glGetAttachedShaders is not available
[DEBUG  ] [GL          ] glGetAttribLocation is not available
[DEBUG  ] [GL          ] glGetBooleanv is not available
[DEBUG  ] [GL          ] glGetBufferParameteriv is not available
[DEBUG  ] [GL          ] glGetError is not available
[DEBUG  ] [GL          ] glGetFloatv is not available
[DEBUG  ] [GL          ] glGetFramebufferAttachmentParameteriv is not available
[DEBUG  ] [GL          ] glGetIntegerv is not available
[DEBUG  ] [GL          ] glGetProgramInfoLog is not available
[DEBUG  ] [GL          ] glGetProgramiv is not available
[DEBUG  ] [GL          ] glGetRenderbufferParameteriv is not available
[DEBUG  ] [GL          ] glGetShaderInfoLog is not available
[DEBUG  ] [GL          ] glGetShaderiv is not available
[DEBUG  ] [GL          ] glGetShaderSource is not available
[DEBUG  ] [GL          ] glGetString is not available
[DEBUG  ] [GL          ] glGetTexParameterfv is not available
[DEBUG  ] [GL          ] glGetTexParameteriv is not available
[DEBUG  ] [GL          ] glGetUniformfv is not available
[DEBUG  ] [GL          ] glGetUniformiv is not available
[DEBUG  ] [GL          ] glGetUniformLocation is not available
[DEBUG  ] [GL          ] glGetVertexAttribfv is not available
[DEBUG  ] [GL          ] glGetVertexAttribiv is not available
[DEBUG  ] [GL          ] glHint is not available
[DEBUG  ] [GL          ] glIsBuffer is not available
[DEBUG  ] [GL          ] glIsEnabled is not available
[DEBUG  ] [GL          ] glIsFramebuffer is not available
[DEBUG  ] [GL          ] glIsProgram is not available
[DEBUG  ] [GL          ] glIsRenderbuffer is not available
[DEBUG  ] [GL          ] glIsShader is not available
[DEBUG  ] [GL          ] glIsTexture is not available
[DEBUG  ] [GL          ] glLineWidth is not available
[DEBUG  ] [GL          ] glLinkProgram is not available
[DEBUG  ] [GL          ] glPixelStorei is not available
[DEBUG  ] [GL          ] glPolygonOffset is not available
[DEBUG  ] [GL          ] glReadPixels is not available
[DEBUG  ] [GL          ] glRenderbufferStorage is not available
[DEBUG  ] [GL          ] glSampleCoverage is not available
[DEBUG  ] [GL          ] glScissor is not available
[DEBUG  ] [GL          ] glShaderBinary is not available
[DEBUG  ] [GL          ] glShaderSource is not available
[DEBUG  ] [GL          ] glStencilFunc is not available
[DEBUG  ] [GL          ] glStencilFuncSeparate is not available
[DEBUG  ] [GL          ] glStencilMask is not available
[DEBUG  ] [GL          ] glStencilMaskSeparate is not available
[DEBUG  ] [GL          ] glStencilOp is not available
[DEBUG  ] [GL          ] glStencilOpSeparate is not available
[DEBUG  ] [GL          ] glTexImage2D is not available
[DEBUG  ] [GL          ] glTexParameterf is not available
[DEBUG  ] [GL          ] glTexParameteri is not available
[DEBUG  ] [GL          ] glTexSubImage2D is not available
[DEBUG  ] [GL          ] glUniform1f is not available
[DEBUG  ] [GL          ] glUniform1fv is not available
[DEBUG  ] [GL          ] glUniform1i is not available
[DEBUG  ] [GL          ] glUniform1iv is not available
[DEBUG  ] [GL          ] glUniform2f is not available
[DEBUG  ] [GL          ] glUniform2fv is not available
[DEBUG  ] [GL          ] glUniform2i is not available
[DEBUG  ] [GL          ] glUniform2iv is not available
[DEBUG  ] [GL          ] glUniform3f is not available
[DEBUG  ] [GL          ] glUniform3fv is not available
[DEBUG  ] [GL          ] glUniform3i is not available
[DEBUG  ] [GL          ] glUniform3iv is not available
[DEBUG  ] [GL          ] glUniform4f is not available
[DEBUG  ] [GL          ] glUniform4fv is not available
[DEBUG  ] [GL          ] glUniform4i is not available
[DEBUG  ] [GL          ] glUniform4iv is not available
[DEBUG  ] [GL          ] glUniformMatrix4fv is not available
[DEBUG  ] [GL          ] glUseProgram is not available
[DEBUG  ] [GL          ] glValidateProgram is not available
[DEBUG  ] [GL          ] glVertexAttrib1f is not available
[DEBUG  ] [GL          ] glVertexAttrib2f is not available
[DEBUG  ] [GL          ] glVertexAttrib3f is not available
[DEBUG  ] [GL          ] glVertexAttrib4f is not available
[DEBUG  ] [GL          ] glVertexAttribPointer is not available
[DEBUG  ] [GL          ] glViewport is not available
[INFO   ] [GL          ] Backend used <sdl2>

Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()

此外,由于bt all在当前上下文中抛出了“无符号“全部”。 消息,我有thread apply all bt的输出,如下所示:

Thread 5 (Thread 0x72dff470 (LWP 976)):
#0  0x76f88014 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, 
    expected=1, futex_word=0x748885ec <cecservice_notify_available_event+24>)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x748885ec <cecservice_notify_available_event+24>, 
    abstime=0x0) at sem_waitcommon.c:115
#2  0x76f88158 in __new_sem_wait_slow (
    sem=0x748885ec <cecservice_notify_available_event+24>, abstime=0x0)
    at sem_waitcommon.c:282
#3  0x7486ec44 in cecservice_notify_func () from /opt/vc/lib/libbcm_host.so
#4  0x747d7cc4 in vcos_thread_entry (arg=0x74888600 <cecservice_notify_task>)
    at /home/dc4/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76f7efc4 in start_thread (arg=0x72dff470) at pthread_create.c:335
#6  0x76e0cbc8 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:76
   from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 4 (Thread 0x735ff470 (LWP 975)):
#0  0x76f88014 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, 
    expected=1, futex_word=0x74887864 <tvservice_notify_available_event+24>)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x74887864 <tvservice_notify_available_event+24>, 
    abstime=0x0) at sem_waitcommon.c:115
#2  0x76f88158 in __new_sem_wait_slow (
    sem=0x74887864 <tvservice_notify_available_event+24>, abstime=0x0)
---Type <return> to continue, or q <return> to quit---
    at sem_waitcommon.c:282
#3  0x7486e084 in tvservice_notify_func () from /opt/vc/lib/libbcm_host.so
#4  0x747d7cc4 in vcos_thread_entry (arg=0x74887878 <tvservice_notify_task>)
    at /home/dc4/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76f7efc4 in start_thread (arg=0x735ff470) at pthread_create.c:335
#6  0x76e0cbc8 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:76
   from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 3 (Thread 0x73dff470 (LWP 974)):
#0  0x76f88014 in futex_abstimed_wait_cancelable (private=0, abstime=0x0, 
    expected=1, futex_word=0x748886e8 <dispmanx_notify_available_event+24>)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:205
#1  do_futex_wait (sem=sem@entry=0x748886e8 <dispmanx_notify_available_event+24>, 
    abstime=0x0) at sem_waitcommon.c:115
#2  0x76f88158 in __new_sem_wait_slow (
    sem=0x748886e8 <dispmanx_notify_available_event+24>, abstime=0x0)
    at sem_waitcommon.c:282
#3  0x74872150 in dispmanx_notify_func () from /opt/vc/lib/libbcm_host.so
#4  0x747d7cc4 in vcos_thread_entry (arg=0x74889428 <dispmanx_notify_task>)
    at /home/dc4/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#5  0x76f7efc4 in start_thread (arg=0x73dff470) at pthread_create.c:335
#6  0x76e0cbc8 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:76
   from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
---Type <return> to continue, or q <return> to quit---

Thread 2 (Thread 0x74758470 (LWP 973)):
#0  0x76e0580c in ioctl () at ../sysdeps/unix/syscall-template.S:84
#1  0x747f1010 in completion_thread () from /opt/vc/lib/libvchiq_arm.so
#2  0x747d7cc4 in vcos_thread_entry (arg=0x74804318 <vchiq_instance+16>)
    at /home/dc4/projects/staging/userland/interface/vcos/pthreads/vcos_pthreads.c:144
#3  0x76f7efc4 in start_thread (arg=0x74758470) at pthread_create.c:335
#4  0x76e0cbc8 in ?? () at ../sysdeps/unix/sysv/linux/arm/clone.S:76
   from /lib/arm-linux-gnueabihf/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 1 (Thread 0x76ff7010 (LWP 967)):
#0  0x00000000 in ?? ()

#1  0x74bb28d0 in __pyx_pf_4kivy_8graphics_6opengl_138glGetString (
    __pyx_self=<optimized out>, __pyx_v_name=<optimized out>)
    at /tmp/pip-bp1kpwjd-build/kivy/graphics/opengl.c:12436
#2  __pyx_pw_4kivy_8graphics_6opengl_139glGetString (__pyx_self=<optimized out>, 
    __pyx_arg_name=<optimized out>)
    at /tmp/pip-bp1kpwjd-build/kivy/graphics/opengl.c:12415
#3  0x000b1df8 in PyEval_EvalFrameEx ()
#4  0x000b1a7c in PyEval_EvalFrameEx ()
#5  0x000b1a7c in PyEval_EvalFrameEx ()
#6  0x001985c8 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

好的,看起来 SDL_GL_GetProcAddress 找不到任何东西 :( 我现在明白了。
我们检测和加载 opengl 的方法与使用的 Window 提供程序相关。
但在这种情况下,使用的是egl_rpi ,而不是 SDL2,因此 SDL2 功能将不起作用。

它需要修复,感谢您的报告!

不确定在此处添加是否相关,但我认为这与 Raspbian 的新版本有关。 我尝试了旧的(我有一个图像),它的作用就像一个魅力。

应用程序启动时出现分段错误的问题可以通过环境变量来解决,而且,每次我加载包含大量数据的图表时,它都会因相同的分段错误而崩溃。

GDB 的问题在于,如果我尝试像gdb --args python main.py那样使用它并复制崩溃,RPI 就会冻结,此时唯一要做的就是重新启动它。 当我检查日志时,它们是空的。

想在这里添加它。

我有同样的问题,就像@goadik说这可能是新 raspbian 版本的错误,因为在我的旧映像(Raspberry3、kivy v1.11.0.dev0、python v3.4.2)上,kivy 应用程序运行良好。 我的问题在这里描述: https :

@krrramambambuli

在我的旧映像(Raspberry3、kivy v1.11.0.dev0、python v3.4.2)上,kivy 应用程序运行良好

那么为什么不使用旧图像呢?

RPi Dev 因推出破坏各种事物的新“更新”而臭名昭著。 我在这些方面有很多不愉快的经历,以至于我完全禁用了来自 RPi org 的所有操作系统相关更新。

@E3V3A

那么为什么不使用旧图像呢?

因为我的 RPI 已经配置了最新的 raspbian 更新。 我只是想知道为什么 kivy 没有运行,尽管我和以前做的事情完全一样。 现在我换成了旧图像,它运行良好!

从现在开始,我会处理仓促的更新;)

也许完全无关,但除非我错了:Kivy 依赖于 SDL2,SDL2 依赖于 cffi 和/或 Cairo,而 cffi 很难独立于架构而构建。 但是我遇到了以下 pip 包,也许试试看?

# pip3 search cairocffi 
cairotft (0.1.2)   - UI library for small tft screens using cairocffi

@E3V3A
我已经切换到旧图像。 也许对未来了解是件好事

我可以问你你使用的是什么图像,我在哪里可以找到它? 我正在使用 Rpi 3 B+ 和 kivy 1.11.0.dev0,我应该使用什么图像?

@E3V3A
我已经切换到旧图像。 也许对未来了解是件好事

我正在使用 raspbian jessie,上次更新是在 11-6-18 没有升级。 Rpi3、Kivy v1.10.1 和 Python 3.4.2
我的日志:

[INFO] Logger:在/home/pi/.kivy/logs/kivy_18-11-14_11.txt中记录日志
[信息] Kivy:v1.10.1
[信息] Python:v3.4.2(默认,2014 年 10 月 19 日,13:31:11)
[海湾合作委员会 4.9.1]
[信息] KivyMD:KivyMD 版本:0.1.2
[信息] 工厂:已加载 194 个符号
[信息] 图像:提供者:img_tex、img_dds、img_sdl2、img_pil、img_gif(忽略 img_ffpyplayer)
[信息] 窗口:提供者:egl_rpi
[信息] GL:使用“OpenGL ES 2”图形系统
[信息] GL:使用后端
[信息] GL:OpenGL 版本 [信息] GL:OpenGL 供应商 [信息] GL:OpenGL 渲染器
[信息] GL:OpenGL 解析版本:2, 0
[信息] GL:阴影版本
[信息] GL:纹理最大尺寸 <2048>
[信息] GL:纹理最大单位 <8>
[信息] 窗口:允许虚拟键盘,多用户模式,不停靠
[信息] 文本:提供者:sdl2
[信息] GL:NPOT 纹理支持可用
[信息]剪贴板:提供者:xclip
[信息] CutBuffer:启用剪切缓冲区支持
[信息] ProbeSysfs:设备匹配:/dev/input/event0
...

谢谢,遇到了同样的问题。
导出 KIVY_GL_BACKEND=gl
修复。

在 raspberry pi 3b+ 中存在完全相同的问题..是否可以在 Ubuntu core 或任何其他支持 raspberry pi 3b+ 的操作系统上安装 kivy?

还有我应该在 raspberry pi 3b+ 中使用哪个 Raspbian 图像来让 kivy 工作

这个问题没有解决
使用导入操作系统
os.environ['KIVY_GL_BACKEND'] = 'gl'
进口基维
只是暂时的解决办法

此线程中尚未提及,但是否有人拥有 Raspbian 的 Lite 或 PIXEL 版本可能是相关的。

screen shot 2018-12-17 at 8 34 11 am

sdl2包含一个 X windows 依赖项,而 Raspbian Lite 显然不包含这个。

我可以确认偷偷摸摸...

import os
os.environ['KIVY_GL_BACKEND'] = 'gl'

...在我的 Python 脚本的顶部使“Hello, Button”应用程序工作。 我使用的是 Stretch Lite 版本。

我应该使用什么版本的 raspbian 才不会出现这个问题?
我试图将我的操作系统降级到 Raspbian Jessie 8.0,但我遇到了同样的段错误......

我应该使用什么版本的 raspbian 才不会出现这个问题?
我试图将我的操作系统降级到 Raspbian Jessie 8.0,但我遇到了同样的段错误......

树莓派 3b+ 也有同样的问题:

启动程序:/usr/bin/python3 /home/pi/sorbito/main.py
[启用使用 libthread_db 的线程调试]
使用主机 libthread_db 库“/lib/arm-linux-gnueabihf/libthread_db.so.1”。
[INFO] [Logger] 在 /home/pi/.kivy/logs/kivy_19-02-13_3.txt 中记录日志
[信息] [Kivy] v1.11.0.dev0, git-233cdd1, 20190212
[信息] [Python] v3.5.3(默认,2018 年 9 月 27 日,17:25:39)
[海湾合作委员会 6.3.0 20170516]
[信息] [工厂] 184 个符号已加载
[INFO] [Image] Providers: img_tex, img_dds, img_pil, img_gif (img_sdl2, img_ffpyplayer 被忽略)
[信息] [文本] 提供者:sdl2
[信息] [窗口] 提供者:egl_rpi
[新线程 0x747ff470 (LWP 2420)]
[新线程 0x73dff470 (LWP 2421)]
[新线程 0x735ff470 (LWP 2422)]
[新线程 0x72dff470 (LWP 2423)]
[信息] [GL] 使用“OpenGL ES 2”图形系统
[信息] [GL] 使用的后端

线程 1“python3”收到信号 SIGSEGV,分段错误。
0x00000000 在 ?? ()

日志:
[INFO] Logger:在/home/pi/.kivy/logs/kivy_19-02-13_3.txt中记录日志
[信息] Kivy: v1.11.0.dev0, git-233cdd1, 20190212
[信息] Python:v3.5.3(默认,2018 年 9 月 27 日,17:25:39)
[海湾合作委员会 6.3.0 20170516]
[信息] 工厂:已加载 184 个符号
[信息] 图像:提供者:img_tex、img_dds、img_pil、img_gif(忽略 img_sdl2、img_ffpyplayer)
[信息] 文本:提供者:sdl2
[信息] 窗口:提供者:egl_rpi
[信息] GL:使用“OpenGL ES 2”图形系统
[信息] GL:使用后端

还是没有办法解决这个问题?

os.environ['KIVY_GL_BACKEND'] = 'gl' 对 v1.11.0.dev0、git-9ebad2d、20190516 根本没有帮助

获取:[关键] [应用程序] 无法获取窗口,中止

对于像 1.10.1 这样的旧版本,我没有任何透明的 PNG 支持......所有透明的 PNG 都是用黑色背景绘制的......尽管相同的代码在 Debian 9 上运行良好......

那么 RPi Stretch-Lite 会不会再被支持了?

回读我对这个线程的最后评论。 它在 Raspbian Stretch Lite (2018 年 11 月)上对我有用,我的 1.10.1 _does_ 支持我使用的一百个左右的具有透明背景的 PNG 图形。

在任何 RPI 上的完全最新的拉伸精简版安装中使用最新的稳定版 (1.11.0) 确认构建会导致此分段错误。 必须构建 stable-1.10.1 才能在 RPI 上运行。 我不知道为什么你会发布一个在主要平台上出现这个问题超过 6 个月的稳定版。

我也在 raspberry 3 B+ 和 raspbian lite 上遇到这个问题

现在一个好的解决方法是确保Pillow已安装,然后使用KIVY_WINDOW=sdl2运行 kivy。 在这种情况下无需设置 gl 后端,因为将使用 sdl2。 如果要使用egl_rpi窗口提供程序,则需要设置 gl 后端。

这绝对是一个回归错误。 在 RPI 3B+ 上安装为

pip install git+https://github.com/kivy/[email protected]

呈现分段错误,而

pip install git+https://github.com/kivy/[email protected]

奇迹般有效。

我计划在发布后修复它。

2019 年 6 月 12 日,星期三,下午 1:11 RafalSkolasinski通知@github.com
写道:

这绝对是回归错误。 在 RPI 3B+ 上安装为

pip 安装 git+ https://github.com/kivy/[email protected]

呈现分段错误,而

pip 安装 git+ https://github.com/kivy/[email protected]

奇迹般有效。


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/kivy/kivy/issues/6007?email_source=notifications&email_token=AAMRN7T3A2SZJ5OE4QQ63NDP2EU2XA5CNFSM4F6QJQM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW6ZKLDNWX05000000000000000000000000000001
或静音线程
https://github.com/notifications/unsubscribe-auth/AAMRN7XWDPCYLGW5QREDN3DP2EU2XANCNFSM4F6QJQMQ
.

你能测试https://github.com/kivy/kivy/pull/6384吗? 这应该可以修复它,并且还允许您在手动选择时使用三个后端中的任何一个(egl_rpi、sdl2 和 x11,如果已编译)。

我可以在今天晚些时候或明天测试它。

2019 年 6 月 13 日星期四,matham, notifications @github.com 写道:

你能测试 #6384 https://github.com/kivy/kivy/pull/6384吗? 这应该
修复它并允许您在选择时使用三个后端中的任何一个
手动(egl_rpi、sdl2 和 x11,如果已编译)。


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/kivy/kivy/issues/6007?email_source=notifications&email_token=ACTL75LVT74IBQJQ4W5QARTP2K6RXA5CNFSM4F6QJQM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LODNVX520000000000000000000001001001010020100201002010020100201000100201000100010 ;
或静音线程
https://github.com/notifications/unsubscribe-auth/ACTL75OGYIBPXEVW33B57KLP2K6RXANCNFSM4F6QJQMQ
.

6384 在 raspbian-lite 上使用 egl_rpi 为我修复了它,不需要导出。

[INFO] Logger:在/home/pi/.kivy/logs/kivy_19-06-14_1.txt中记录日志
[信息] 图像:提供者:img_tex、img_dds、img_pil、img_gif(忽略 img_sdl2、img_ffpyplayer)
[信息] Kivy: v2.0.0.dev0, git-dccba95, 20190614
[信息] Kivy:安装在“/home/pi/Stuff/kivy-fix/kivy/__init__.py”
[信息] Python:v3.5.3(默认,2018 年 9 月 27 日,17:25:39)
[海湾合作委员会 6.3.0 20170516]
[信息] Python:“/usr/bin/python3”处的解释器
[信息] 工厂:已加载 184 个符号
[信息] 文本:提供者:sdl2
[信息] 窗口:提供者:egl_rpi
[信息] GL:使用“OpenGL ES 2”图形系统
[信息] GL:使用后端
[信息] GL:OpenGL 版本 [信息] GL:OpenGL 供应商 [信息] GL:OpenGL 渲染器
[信息] GL:OpenGL 解析版本:2, 0
[信息] GL:阴影 v

是的,它有效。
最初我遇到了问题并出现了一些错误

[CRITICAL] [Window      ] Unable to find any valuable Window provider.

但是在添加pillow它开始工作了。
我猜pillow是在1.11添加的新依赖项?

编辑:
此修复程序会在1.11.1吗? 我懂了

[INFO ] Kivy: v2.0.0.dev0, git-dccba95, 20190614

在日志中。

这将被精选到1.11.0.post0 (https://github.com/kivy/kivy/pull/6357) 的发布后版本中。 这样,在安装时以 1.11.0 为目标的人将自动获得固定版本(假设 pip 在这里做正确的事情并在请求1.11.0时安装1.11.0.post0 )。

通常,我会转到 1.11.1,但考虑到我们跳转到 2.0.0 和下一个版本破坏了诸如 python 2 支持之类的东西,这对我们的工作流程不太适用。 此版本应该很快就会发布。

关于枕头,我不确定是怎么回事。 sdl2_image应该有效(我认为它在过去有效?),但由于某种原因它无法加载图像。 我想它需要进一步排除故障(欢迎 PR)。 无论如何,我更新了文档以将枕头列为依赖项。

我会选择 1.11.1,因为很明显包含错误修复。 让我们
希望 pip 我们会做正确的事情。

在 2019 年 6 月 14 日星期五,17:11 matham, notifications @github.com 写道:

这将被挑选到 1.11.0.post0 (#6357
https://github.com/kivy/kivy/pull/6357 )。 这样的目标人群
1.11.0 安装时会自动获取固定版本(假设
pip 在这里做正确的事情并在 1.11.0 安装时安装 1.11.0.post0
要求)。

通常,我会去 1.11.1,但这对我们的
工作流程,鉴于我们跳转到 2.0.0 和下一个版本的破坏性内容,例如
作为 python 2 支持。 此版本应该很快就会发布。

关于枕头,我不确定是怎么回事。 sdl2_image 应该有效
(我认为它在过去有效?),但由于某种原因它无法加载
图片。 我想它需要进一步排除故障(欢迎 PR)。 在
无论如何,我更新了文档以将枕头列为依赖项。


您收到此消息是因为您订阅了此线程。
直接回复本邮件,在GitHub上查看
https://github.com/kivy/kivy/issues/6007?email_source=notifications&email_token=ACTL75LMHH3Q2FDKYW4HTUTP2O7LDA5CNFSM4F6QJQM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LODNXW5HW6000000000000000000000000000000000000000000 ;不同
或静音线程
https://github.com/notifications/unsubscribe-auth/ACTL75NBY6O6KBPR4QT3LPDP2O7LDANCNFSM4F6QJQMQ
.

如果您要求1.11.0 ,pip 可能不会安装1.11.1 ,而是完全安装 1.11.0 。 如果我们要求1.11 ,我不确定它会做什么,

哦,我的意思是当我们要求“1.11.0”时,它会安装打补丁的“.post0”:)

在 2019 年 6 月 14 日星期五,19:29 matham, notifications @github.com 写道:

如果您要求安装 1.11.0,pip 可能不会安装 1.11.1,而是安装 1.11.0
确切地。 如果我们要求 1.11,我不确定它会做什么,


您收到此消息是因为您订阅了此线程。
直接回复本邮件,在GitHub上查看
https://github.com/kivy/kivy/issues/6007?email_source=notifications&email_token=ACTL75JZDOPPHORTC3LEVZTP2PPPNA5CNFSM4F6QJQM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63DNXX5WWWZissue2205000000000000000000000000000000000000000000001
或静音线程
https://github.com/notifications/unsubscribe-auth/ACTL75KC3BTJGUQTTBMAHLDP2PPPNANCNFSM4F6QJQMQ
.

如上所述,我将export KIVY_GL_BACKEND=gl到路径中,现在我遇到了另一个问题,它说...
create_window() takes 1 positional argument but 2 were given

请帮我解决这个错误。
当我在树莓派中运行我的代码时

须藤python3 main.py
[警告] [配置] 检测到较旧的配置版本(0 而不是 14)
[警告] [配置] 正在升级配置。
[INFO] [Logger] 在/root/.kivy/logs/kivy_19-06-17_0.txt 中记录日志
[信息] [Kivy] v1.9.1
[信息] [Python] v3.5.3(默认,2018 年 9 月 27 日,17:25:39)
[海湾合作委员会 6.3.0 20170516]
[信息] [工厂] 179 个符号已加载
[INFO] [Image] Providers: img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer 被忽略)
[信息] [文本] 提供者:sdl2
[信息] [OSC] 使用用于插座
[信息] [窗口] 提供者:sdl2(['window_egl_rpi'] 忽略)
错误:XDG_RUNTIME_DIR 未在环境中设置。
[CRITICAL] [Window] 根本找不到任何有价值的 Window 提供程序!
egl_rpi - 导入错误:无法导入名称“bcm”
文件“/usr/lib/python3/dist-packages/kivy/core/__init__.py”,第 59 行,在 core_select_lib
fromlist=[modulename], level=0)
文件“/usr/lib/python3/dist-packages/kivy/core/window/window_egl_rpi.py”,第 12 行,在
从 kivy.lib.vidcore_lite 导入 bcm, egl

sdl2 - 运行时错误:b'没有可用的视频设备'
文件“/usr/lib/python3/dist-packages/kivy/core/__init__.py”,第 67 行,在 core_select_lib
cls = cls()
文件“/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py”,第 138 行,在 __init__ 中
super(WindowSDL, self).__init__()
文件“/usr/lib/python3/dist-packages/kivy/core/window/__init__.py”,第722行,在__init__
self.create_window()
文件“/usr/lib/python3/dist-packages/kivy/core/window/window_sdl2.py”,第237行,在create_window
self.fullscreen,可调整大小,状态)
文件 "kivy/core/window/_window_sdl2.pyx", line 80, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window (kivy/core/window/_window_sdl2.c:1893)
文件“kivy/core/window/_window_sdl2.pyx”,第 55 行,在 kivy.core.window._window_sdl2._WindowSDL2Storage.die (kivy/core/window/_window_sdl2.c:1479)

x11 - 导入错误:没有名为“kivy.core.window.window_x11”的模块
文件“/usr/lib/python3/dist-packages/kivy/core/__init__.py”,第 59 行,在 core_select_lib
fromlist=[modulename], level=0)

[关键] [应用程序] 无法获取窗口,中止。
异常被忽略:'kivy.properties.dpi2px'
回溯(最近一次调用最后一次):
文件“/usr/lib/python3/dist-packages/kivy/utils.py”,第 513 行,在 __get__ 中
retval = self.func(inst)
文件“/usr/lib/python3/dist-packages/kivy/metrics.py”,第 175 行,dpi
EventLoop.ensure_window()
文件“/usr/lib/python3/dist-packages/kivy/base.py”,第126行,在ensure_window
sys.exit(1)
系统退出:1
[关键] [应用程序] 无法获取窗口,中止。

任何人,请让我知道我该怎么办。

@jayeshsingh9767您是否尝试过使用 master 或最新版本? 这已在 master 中修复,但我们还没有发布包含修复程序的新版本。

@harshp1301此错误与此问题无关。 这似乎也是您的系统而不是 kivy 的问题。 如需支持,请在不和谐时询问。

@matham谢谢,但是当我从代码中删除Window.size()时问题就解决了。
我认为我们无法在 Raspberry pi 中管理 kivy 应用程序Window ......但是有人可以解释我为什么吗?
注意: Wimdow.size()在 Ubuntu 上运行完美...

这与此问题无关,因此可能为此打开新问题(如果不存在)? 但对于 egl_rpi 窗口后端,这也许是不可能的。 我会尝试使用 sdl2 后端或 x11 窗口后端(我认为即使在 pi 上它们都可以调整大小)。

我在实际的 raspbian lite os (2020-05-27) 上遇到了类似的问题 --> 首次加载后出现分段错误。 比我尝试切换到“gl”。 之后,我 gt 一个 whichte 屏幕和一个黑色光标,我的 GUI 没有任何内容。
如果我切换回以前的 raspbian lite,它可以与 Kivy 1.11.1 一起使用。 其实我不知道到底有什么区别。 似乎有一些更新导致了这个问题(库,固件......?)。 我幸运地备份了旧的 SD 卡并为我实际使用的 GUI 恢复了它。
我决定使用 Kivy,因为我不需要安装 X11。 我的 GUI 正在控制台中运行...

@AndreasPantle我在使用1.11.1和 Raspberry PI OS(更名为 Raspbian)时遇到了相同的体验。 将给1.10.1一个旋转,看看会发生什么。 kivy 是 Mission Pinball 媒体控制器的依赖项,因此可能无法选择翻转版本。

此页面是否有帮助?
0 / 5 - 0 等级