Python Kivy运行报错:[CRITICAL] [App ] Unable to get a Window, abort 问题求助
解决Kivy "Unable to get a Window, abort" 错误
从你的错误日志和安装步骤来看,核心问题是SDL2窗口提供者的DLL文件无法加载,同时安装过程中出现的WARNING: Ignoring invalid distribution -ip提示pip存在损坏的缓存包,这也可能影响依赖的正常安装。下面是一步步的排查和解决方法:
1. 先修复pip的损坏包问题
那个-ip的警告说明pip缓存里有损坏的包,先清理并修复pip:
- 首先强制重新安装pip:
python -m pip install --force-reinstall pip - 清理pip缓存,避免后续安装使用损坏的文件:
python -m pip cache purge - 如果运行
python -m pip list还能看到类似invalid distribution -ip的提示,直接卸载这个损坏的包(包名大概率是ip,日志显示的是截断后的名称):python -m pip uninstall -y ip
2. 完全卸载并重新安装Kivy及依赖
当前的SDL2依赖已经损坏,需要彻底卸载后重新安装:
- 卸载所有Kivy相关包:
python -m pip uninstall -y kivy kivy.deps.sdl2 kivy.deps.glew kivy.deps.gstreamer kivy.deps.angle - 按照官方推荐的顺序重新安装,加上
--no-cache-dir确保下载全新的文件:# 升级基础工具 python -m pip install --upgrade pip wheel setuptools # 安装辅助依赖 python -m pip install docutils pygments pypiwin32 # 安装Kivy的系统依赖 python -m pip install kivy.deps.sdl2 kivy.deps.glew kivy.deps.gstreamer kivy.deps.angle --no-cache-dir # 安装Kivy本体 python -m pip install kivy --no-cache-dir
3. 检查Python环境(关键!)
从你的路径来看,你使用的是Microsoft Store版本的Python(路径包含PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0)。这个版本的Python有系统隔离机制,会导致依赖的DLL文件无法被正确加载,这是很多Kivy窗口启动失败的常见原因。
建议你换成Python官网下载的标准安装版(不是Store版):
- 卸载当前的Microsoft Store Python
- 从Python官网下载对应版本的安装包,安装时务必勾选"Add Python to PATH"选项
- 之后重新执行上面的安装步骤
4. 验证SDL2依赖是否正常
安装完成后,检查SDL2的DLL文件是否存在:
- 找到Python的site-packages目录,比如:
C:\Users\你的用户名\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\kivy_deps\sdl2\bin - 确认目录下存在
SDL2.dll、SDL2_image.dll等文件,如果缺失,说明依赖安装失败,重新运行python -m pip install kivy.deps.sdl2 --no-cache-dir
5. 安装必要的系统运行库
Kivy的依赖需要Visual C++ Redistributable运行库,确保你的Windows系统安装了Visual C++ Redistributable for Visual Studio 2015-2019(最新版本即可)。
完成以上步骤后,再运行你的Hello World代码,应该就能正常弹出窗口了。
内容的提问来源于stack exchange,提问作者gasper101
相关产品推荐
相关产品推荐

