Я написал приложение с графическим интерфейсом на Python 3, используя Kivy, который нужно распространять среди неопытных людей, которым нужен исполняемый файл.
Когда я впервые попытался создать .exe, я получил папку dist размером 800 МБиз-за того, что Numpy является версией mkl, а не версией OpenBLAS.Я исправил это, используя выделенную среду для моего приложения ( из этого вопроса ), и теперь у меня осталось 170 МБ, что по-прежнему остается большим даже при сжатии.Я надеялся, что смогу достигнуть 50 МБ или даже ниже, но я не могу понять, что предлагает делать документация ... Я уверен, что есть много kivy-зависимостей, которые вставляются в дистрибутив .exe, но не используются.
Прямо сейчас я использую стандартный файл .spec, как предложено в документации:
from kivy.deps import sdl2, glew
block_cipher = None
a = Analysis(['UploadTimeProgramGUI.py'],
pathex=['C:\\Users\\M\\Desktop\\kivyapp\\test'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='test',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe, Tree('C:\\Users\\M\\Desktop\\kivyapp\\test'),
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
strip=False,
upx=True,
name='test')
Как можно еще больше уменьшить размер исполняемого файла (папка dist, которая действительно будет распространяться), исключив неиспользуемыйкивы зависимости?
Полезная информация:
- Приложение, написанное на: Python 3.7 Распространение Anaconda
- Импорт: kivy, pandas, re (стандартная библиотека), os (стандартная библиотека)
- Разработка и целевая ОС: Windows 10
- Другие примечания: приложение не использует ни видео, ни звуков, это простой графический интерфейс с некоторыми кнопками, метками, списком и списком переходов и несколькими всплывающими окнами.