Kivy错误:[CRITICAL] [App]无法获取窗口,中止

时间:2019-02-21 12:18:41

标签: python windows kivy

所有针对此Kivy错误的解决方案均不适用于我。现在已经2周多了,但我所有的努力都徒劳无功。我正在使用python 3.6.4,kivy 1.10.1,pycharm作为我的IDE和Windows10。这是错误代码和代码本身:

代码:

from kivy.core.window import Window
import os
os.environ['KIVY_GL_BACKEND'] = 'angel_sdl2'
from kivy.app import App
from kivy.uix.button import Button

# from kivy import Config
# Config.set('graphics', 'multisamples', '0')

class MyApp(App):
  def build(self):
     return Button(text='Hello world')


if __name__ == '__main__':
   MyApp().run()

错误:

enter code here"C:\Program Files\Python36-32\python.exe" 
"C:/Users/Sabinus O Ofoleta/Desktop/python/tested.py"
[INFO   ] [Logger      ] Record log in C:\Users\Sabinus O    Ofoleta\.kivy\logs\kivy_19-02-21_4.txt
[INFO   ] [Kivy        ] v1.10.1
 [INFO   ] [Python      ] v3.6.7 (v3.6.7:6ec5cf24b7, Oct      20 2018, 12:45:02) [MSC v.1900 32 bit (Intel)]
 [INFO   ] [Factory     ] 194 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: sdl2
 [INFO   ] [Window      ] Activate GLES2/ANGLE context
 [CRITICAL] [Window      ] Unable to find any valuable  Window provider.
 sdl2 - RuntimeError: b'Could not initialize EGL'
 File "C:\Program Files\Python36-32\Lib\site-packages   \kivy\core\__init__.py", line 67, in core_select_lib
  cls = cls()
 File "C:\Program Files\Python36-32\Lib\site-packages \kivy\core\window\window_sdl2.py", line 140, in __init__
super(WindowSDL, self).__init__()
 File "C:\Program Files\Python36-32\Lib\site-packages\kivy\core\window\__init__.py", line 968, in __init__
self.create_window()
 File "C:\Program Files\Python36-32\Lib\site-packages\kivy\core\window\window_sdl2.py", line 272, in create_window
self.fullscreen,resizable , state)
 File "kivy\core\window\_window_sdl2.pyx", line 209, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
 File "kivy\core\window\_window_sdl2.pyx", line 66, in kivy.core.window._window_sdl2._WindowSDL2Storage.die

 [CRITICAL] [App         ] Unable to get a Window, abort.

 Process finished with exit code 1

我的计算机使用的是opengl 1.1,因为其他版本不兼容,所以我决定使用'angel_sdl2'。谢谢

3 个答案:

答案 0 :(得分:0)

我很难相信可以运行Windows 10的计算机不能运行的opengl的最新版本超过1.1,后者已经使用了20多年,而OpenGL ES 2.0本身已经使用了10多年。更有可能的是,您没有安装用于GPU的驱动程序。即使使用angle_sdl2,也需要使用DirectX 11,因为angle只是在其之上的OpenGL实现。

答案 1 :(得分:0)

我找到了解决这个问题的方法;复制C:\Python27\share\sdl2\binsdl2文件夹中所有路径中的所有文件。将这些文件粘贴到System32SysWOW64文件夹中。

答案 2 :(得分:0)

在装有Intel GMA 965和Win10的笔记本电脑上出现相同的问题

原因:图形驱动程序已过时,没有新版本。

解决方案(为我工作):

1)通过pal1000 https://github.com/pal1000/save-legacy-intel-graphics应用工具

(有关更多信息,请访问https://community.khronos.org/t/i-have-opengl-3-1-but-kivy-says-that-i-have-only-1-1/103980/6

2)安装依赖项,例如

compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.17'

(并将系统变量“ KIVY_GL_BACKEND”设置为“ glew”,或者不设置-这是默认值;再次安装kivy.deps.angle并设置“ angle_sdl2” 无济于事在这种情况下是我)

3)在python代码之前添加此代码:

python -m pip install --ignore-installed kivy.deps.sdl2 kivy.deps.glew

(来自Kivy does not detect OpenGL 2.0