栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

成功解决 python+kivy的raise Exception(‘SDL2: Unable to load image‘) Unable to get a Window, abort.

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

成功解决 python+kivy的raise Exception(‘SDL2: Unable to load image‘) Unable to get a Window, abort.

运行python+kivy一个小程序出错,代码如下:

from kivy.app import App
from kivy.uix.floatlayout import FloatLayout

class SizeFloat(FloatLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

class SizeApp(App):
    def build(self):
        return SizeFloat()

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

试运行,出错如下:

[CRITICAL] [Window      ] Unable to find any valuable Window provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes
sdl2 - Exception: SDL2: Unable to load image
  File "C:PythonProjectkv-demo-envlibsite-packageskivycore__init__.py", line 71, in core_select_lib
    cls = cls()
  File "C:PythonProjectkv-demo-envlibsite-packageskivycorewindowwindow_sdl2.py", line 152, in __init__
    super(WindowSDL, self).__init__()
  File "C:PythonProjectkv-demo-envlibsite-packageskivycorewindow__init__.py", line 981, in __init__
    self.create_window()
  File "C:PythonProjectkv-demo-envlibsite-packageskivycorewindowwindow_sdl2.py", line 312, in create_window
    super(WindowSDL, self).create_window()
  File "C:PythonProjectkv-demo-envlibsite-packageskivycorewindow__init__.py", line 1258, in create_window
    self.render_context = RenderContext()
  File "kivygraphicsinstructions.pyx", line 783, in kivy.graphics.instructions.RenderContext.__init__
  File "C:PythonProjectkv-demo-envlibsite-packageskivycoreimage__init__.py", line 561, in __init__
    self.filename = arg
  File "C:PythonProjectkv-demo-envlibsite-packageskivycoreimage__init__.py", line 756, in _set_filename
    mipmap=self._mipmap, nocache=self._nocache)
  File "C:PythonProjectkv-demo-envlibsite-packageskivycoreimage__init__.py", line 460, in load
    im = loader(filename, **kwargs)
  File "C:PythonProjectkv-demo-envlibsite-packageskivycoreimage__init__.py", line 223, in __init__
    self._data = self.load(filename)
  File "C:PythonProjectkv-demo-envlibsite-packageskivycoreimageimg_sdl2.py", line 47, in load
    raise Exception('SDL2: Unable to load image')

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

Process finished with exit code 1

File "C:PythonProjectkv-demo-envlibsite-packageskivycoreimageimg_sdl2.py", line 47, in load
    raise Exception('SDL2: Unable to load image')

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

经查询大家解决经验,没有引入sdl2模块,在代码前加入两行

import os

os.environ['KIVY_IMAGE'] = 'pil,sdl2'

完整代码如下:

import os

os.environ['KIVY_IMAGE'] = 'pil,sdl2'
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout

class SizeFloat(FloatLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

class SizeApp(App):
    def build(self):
        return SizeFloat()

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

再次运行,成功解决!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/741681.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号