pyinstaller kivy 错误无法获取任何图像提供程序,中止

Posted

技术标签:

【中文标题】pyinstaller kivy 错误无法获取任何图像提供程序,中止【英文标题】:pyinstaller kivy error Unable to get any Image provider, abort 【发布时间】:2021-12-12 15:58:14 【问题描述】:

嗨,我用 pyinstallervirtualenv

中创建了一个kivy python

我的程序在控制台中使用命令python cipol.py 运行成功,没有错误 但是当使用命令 pyinstaller cipol.spec 使用 pyinstaller 创建 exe 时

它会返回

[INFO] [Factory] ​​已加载 186 个符号

[INFO] [Image] 提供者:(img_tex、img_dds、img_ffpyplayer、img_pil、img_sdl2 被忽略)

[CRITICAL] [App] 无法获取任何图像提供程序,中止。

这是我的规范文件:

# -*- mode: python ; coding: utf-8 -*-
from kivy_deps import sdl2, glew
import os
os.environ['KIVY_IMAGE'] = 'pil,sdl2'
from importlib import __import__

block_cipher = None


a = Analysis(['C:\\Users\\user\\Desktop\\cipol-kivy\\exe\\venv\\Lib\\sync\\cipol.py'],
         pathex=['C:\\Users\\user\\Desktop\\cipol-kivy\\exe\\venv\\Lib\\sync'],
         binaries=[],
         datas=[],
         hiddenimports=['win32file','win32timezone'],
         hookspath=[],
         runtime_hooks=[],
         excludes=[],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=block_cipher,
         noarchive=False)
a.datas += [('logo.png','C:\\Users\\user\\Desktop\\cipol-kivy\\exe\\venv\\Lib\\sync\\logo.png','DATA'), ('style.kv', 'C:\\Users\\user\\Desktop\\cipol-kivy\\exe\\venv\\Lib\\sync\\style.kv', 'DATA')]

pyz = PYZ(a.pure, a.zipped_data,
         cipher=block_cipher)
exe = EXE(pyz,
      a.scripts,
      [],
      exclude_binaries=True,
      name='cipolsync',
      debug=True,
      bootloader_ignore_signals=False,
      strip=False,
      upx=True,
      console=True,
      icon='C:\\Users\\user\\Desktop\\cipol-kivy\\exe\\venv\\Lib\\sync\\cipol.ico')
coll = COLLECT(exe,
            Tree('C:\\Users\\user\\Desktop\\cipol-kivy\\exe\\venv\\Lib\\sync\\'),
           a.binaries,
           a.zipfiles,
           a.datas,
           *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
           strip=False,
           upx=True,
           upx_exclude=[],
           name='cipolsync')

【问题讨论】:

【参考方案1】:

尝试使用此命令:pyinsaller --onefile cipol.py。然后删除所有文件夹和规范文件,但不要删除 dist 文件夹。 exe 文件将位于该 dist 文件夹中。

【讨论】:

试过这个但返回上一个错误没有解决错误

以上是关于pyinstaller kivy 错误无法获取任何图像提供程序,中止的主要内容,如果未能解决你的问题,请参考以下文章

SDL2 错误:使用 pyinstaller 冻结 kivy 应用程序时“无法加载图像 <default.png>”

Pyinstaller 难以通过 Kivy 构建 FileChooserListView

Pyinstaller编译为exe

如何从我的 kivy 应用程序(Pyinstaller)获取 Windows 可执行文件?

Kivy,Python:我无法减小 PyInstaller 生成的包的大小

PyInstaller 3.2.1 与 Kivy 1.10.0 pyz 语法错误并且不打包