嗨,我在virtualenv
中使用pyinstaller
创建了一个kivy python
我的程序在控制台中使用命令python cipol.py
运行成功运行,没有错误
但是当使用 pyinstaller 使用命令 pyinstaller cipol.spec
它会返回
[信息] [工厂] 已加载 186 个符号
[信息] [图片] 提供程序:(img_tex、img_dds、img_ffpyplayer、img_pil、img_sdl2 已忽略)
[严重] [应用程序] 无法获取任何图像提供程序,中止。
这是我的规范文件:
# -*- 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')
最佳答案
尝试使用此命令:pyinsaller --onefile cipol.py
。然后删除所有文件夹和spec文件,但不要删除dist文件夹。 exe 文件将位于该 dist 文件夹内。
关于python - pyinstaller kivy错误无法获取任何图像提供程序,中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69737311/