Pyinstaller打包Kivy程序报错:无法找到可用Image提供者,程序中止
问题原因
PyInstaller打包过程未识别到Kivy所需的图像后端隐式依赖,导致生成的exe运行时无法加载pil、sdl2图像提供者,触发报错。
修复步骤
- 第一步:修改spec文件中的
hiddenimports配置,补充图像相关依赖,修改后配置如下:
hiddenimports=['win32file','win32timezone', 'kivy_deps.sdl2', 'kivy_deps.glew', 'PIL', 'kivy.core.image.img_pil', 'kivy.core.image.img_sdl2'],
- 第二步:在你的主程序
cipol.py最顶部、导入kivy相关模块之前,添加环境变量配置,确保exe运行时优先加载指定图像后端:
import os os.environ['KIVY_IMAGE'] = 'pil,sdl2'
- 第三步:确认你当前的virtualenv环境中已经安装了所有必要依赖,没有的话执行命令安装:
pip install pillow kivy-deps.sdl2 kivy-deps.glew - 第四步:删除之前打包生成的
build、dist文件夹和旧的缓存文件,重新执行pyinstaller cipol.spec即可。
内容的提问来源于stack exchange,提问作者taher
相关产品推荐
相关产品推荐

