С большой помощью StackOverflow мне удалось сгенерировать один исполняемый файл для Windows с помощью PyInstaller в приложении Kivy. Самая важная помощь пришла от здесь и здесь .
Мой файл spe c:
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
from kivy_deps import sdl2, glew
from kivy.tools.packaging.pyinstaller_hooks import get_deps_minimal
a = Analysis(['MainApp.py'],
pathex=['D:\\Projetos\\PESE_VALIDADOR'],
datas=[],
hookspath=[],
runtime_hooks=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False,
**get_deps_minimal(video=None, audio=None, camera=None)
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
a.datas += [('Apresentacao.kv','Apresentacao.kv', 'DATA')]
a.datas += [('Arquivos.kv','Arquivos.kv', 'DATA')]
a.datas += [('Processando.kv','Processando.kv', 'DATA')]
a.datas += [('Validador.kv','Validador.kv', 'DATA')]
a.hiddenimports += ['pkg_resources.py2_warn']
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
name='Validador',
debug=True,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
)
После чистой установки Python 3.8.3, создан fre sh new virtualenv, и результат команды pip freeze
был:
altgraph==0.17
anytree==2.8.0
certifi==2020.4.5.1
chardet==3.0.4
docutils==0.16
future==0.18.2
idna==2.9
Kivy==2.0.0rc2
kivy-deps.angle==0.2.0
kivy-deps.glew==0.2.0
kivy-deps.sdl2==0.2.0
Kivy-Garden==0.1.4
numpy==1.18.4
pandas==1.0.3
pefile==2019.4.18
Pillow==7.1.2
Pygments==2.6.1
PyInstaller==3.6
pypiwin32==223
python-dateutil==2.8.1
pytz==2020.1
pywin32==227
pywin32-ctypes==0.2.0
requests==2.23.0
six==1.15.0
urllib3==1.25.9
Он работает нормально, только с одним исполняемым файлом, но все еще имеет 37 МБ (на самом деле намного лучше, чем 235 МБ моей первой попытки). Я хотел бы знать, можно ли его еще больше уменьшить (может быть, что-то около 7 МБ , как я читал, как говорят другие)