Kivy1.10.0+Python3.6.1运行官方示例出现SystemExit:1错误求助
解决Kivy 1.10.0 + Python 3.6.1中"Unable to get a Window, abort"错误
我之前也碰到过这个问题!在你使用的Kivy 1.10.0搭配Python 3.6.1环境下,这个[CRITICAL] [App ] Unable to get a Window, abort. + SystemExit: 1的错误,大多是因为缺少显示相关依赖或者窗口后端配置出了问题,给你几个靠谱的解决方向:
先确认你的测试代码(方便对照)
你运行的是标准的Kivy入门示例,代码本身没有问题:
from kivy.app import App from kivy.uix.label import Label class MyApp(App): def build(self): return Label(text='Hello world') if __name__ == '__main__': MyApp().run()
分系统解决方法
Windows系统
- 先安装Kivy官方指定的依赖包,打开命令行执行:
pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew - 如果还是报错,尝试强制指定GL后端,在代码最开头添加:
这个设置能解决很多Windows下的显示兼容问题。import os os.environ['KIVY_GL_BACKEND'] = 'angle_sdl2'
Linux系统(以Ubuntu/Debian为例)
- 先安装系统级的底层依赖,否则Kivy无法正常调用窗口服务:
sudo apt-get install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev pkg-config libgl1-mesa-dev libgles2-mesa-dev python3-setuptools - 卸载现有Kivy后重新安装指定版本:
pip uninstall kivy -y pip install kivy==1.10.0
macOS系统
- 用Homebrew安装底层SDL依赖:
brew install sdl2 sdl2_image sdl2_mixer sdl2_ttf - 确保你用的是Python 3.6.1的虚拟环境,然后重新安装Kivy 1.10.0:
pip install kivy==1.10.0
额外排查点
- 别混用不同版本的Python!比如系统自带的Python和你手动安装的Python 3.6.1,最好用虚拟环境隔离。
- 如果是在无桌面的服务器上运行,Kivy需要虚拟显示,你可以用xvfb来模拟:
xvfb-run python your_script.py
内容的提问来源于stack exchange,提问作者Debobrata
相关产品推荐
相关产品推荐

