You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kivy报错Unable to get a Window, abort 求助(Win7+Anaconda3.8.5)

Kivy 着色器链接失败(GL错误1282)问题解决

环境信息

  • 系统:Windows 7
  • Python版本:Anaconda 3.8.5
  • Kivy版本:2.0.0
  • 已配置环境变量:KIVY_GL_BACKEND=angle_sdl2

用户代码

from kivy.uix.label import Label

class MyApp(App):
    def build(self):
        return Label(text='Hello world', text_size = 32)

MyApp().run()

报错信息(翻译后)

[INFO   ] [Logger      ] 日志记录在 C:\Users\FARHAN\.kivy\logs\kivy_22-07-22_15.txt
[INFO   ] [Kivy        ] v2.0.0
[INFO   ] [Kivy        ] 安装路径:"C:\Users\FARHAN\anaconda3\lib\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.8.5 (default, Sep  3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)]
[INFO   ] [Python      ] 解释器路径:"C:\Users\FARHAN\anaconda3\python.exe"
[INFO   ] [Factory     ] 已加载186个符号
[INFO   ] [Image       ] 提供器:img_tex, img_dds, img_sdl2, img_pil (忽略img_ffpyplayer)
[INFO   ] [Text        ] 提供器:sdl2
[INFO   ] [Window      ] 提供器:sdl2
[INFO   ] [Window      ] 激活GLES2/ANGLE上下文
[INFO   ] [GL          ] 使用"OpenGL"图形系统
[INFO   ] [GL          ] 使用的后端 <angle_sdl2>
[INFO   ] [GL          ] OpenGL版本 <b'OpenGL ES 2.0 (ANGLE 2.1.0.8613f4946861)'>
[INFO   ] [GL          ] OpenGL厂商 <b'Google Inc.'>
[INFO   ] [GL          ] OpenGL渲染器 <b'ANGLE (英特尔(R) 迅驰移动45芯片组家族 (微软公司 - WDDM 1.1) Direct3D11 vs_4_0 ps_4_0)'>
[INFO   ] [GL          ] OpenGL解析版本:2, 0
[INFO   ] [GL          ] 着色器版本 <b'OpenGL ES GLSL ES 1.00 (ANGLE 2.1.0.8613f4946861)'>
[INFO   ] [GL          ] 纹理最大尺寸 <8192>
[INFO   ] [GL          ] 纹理最大单元数 <16>
[ERROR  ] [Shader      ] GL错误1282
[INFO   ] [Shader      ] 程序:<创建D3D着色器失败>
[CRITICAL] [Window      ] 无法找到可用的窗口提供器。请启用调试日志(例如命令行运行时添加-d参数,或修改配置中的日志级别)并重新运行应用以排查原因
sdl2 - 异常:着色器未链接,请检查信息日志。
  File "C:\Users\FARHAN\anaconda3\lib\site-packages\kivy\core\__init__.py", line 70, in core_select_lib
    cls = cls()
  File "C:\Users\FARHAN\anaconda3\lib\site-packages\kivy\core\window\window_sdl2.py", line 152, in __init__
    super(WindowSDL, self).__init__()
  File "C:\Users\FARHAN\anaconda3\lib\site-packages\kivy\core\window\__init__.py", line 982, in __init__
    self.create_window()
  File "C:\Users\FARHAN\anaconda3\lib\site-packages\kivy\core\window\window_sdl2.py", line 311, in create_window
    super(WindowSDL, self).create_window()
  File "C:\Users\FARHAN\anaconda3\lib\site-packages\kivy\core\window\__init__.py", line 1268, in create_window
    self.render_context = RenderContext()
  File "kivy\graphics\instructions.pyx", line 777, in kivy.graphics.instructions.RenderContext.__init__
  File "kivy\graphics\shader.pyx", line 184, in kivy.graphics.shader.Shader.__init__
  File "kivy\graphics\shader.pyx", line 701, in kivy.graphics.shader.Shader.vs.__set__
  File "kivy\graphics\shader.pyx", line 557, in kivy.graphics.shader.Shader.build_vertex
  File "kivy\graphics\shader.pyx", line 587, in kivy.graphics.shader.Shader.link_program

[CRITICAL] [App         ] 无法获取窗口,终止程序。

解决方法

1. 降级Kivy到1.11.1版本

Kivy 2.0.0对旧显卡(如你的Intel Mobile 45 Express Chipset)兼容性不佳,降级到1.11.1可解决着色器链接问题:

pip install kivy==1.11.1 --force-reinstall

2. 切换GL后端

尝试更换其他GL后端,设置对应的环境变量后重启终端/IDE再运行:

  • 设置KIVY_GL_BACKEND=sdl2
  • 或KIVY_GL_BACKEND=glew

3. 更新显卡驱动

虽然Windows 7已停止官方支持,但可尝试寻找适配Intel Mobile 45 Express Chipset的驱动版本,更新后可能修复OpenGL兼容性问题。

4. 修正代码参数错误

你的代码中Label的text_size参数使用错误,该参数需传入元组(宽, 高)而非数值,同时漏掉了App的导入,修正后代码:

from kivy.app import App
from kivy.uix.label import Label

class MyApp(App):
    def build(self):
        return Label(text='Hello world', text_size=(200, 50))

MyApp().run()

(注:此参数错误不会导致着色器问题,但会影响Label显示效果,建议修正)

内容的提问来源于stack exchange,提问作者Mr Farhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:06:56