Как уменьшить размер exe? (Python, Kivy)
Сколько бы я не искал на StackOverflow, я не нашел внятного ответа про сжатие exe
файла. Интересует само наполнение exe-шника, что же в нем такого на 71 мб? Я собрал с помощью PyInstaller
простейшее оконное приложение на kivy
. После первичной сборки, до доработки spec
файла, я получил 70 чистых мегабайт. Стоит учитывать то, что поставщик окон windows еще не был подключен - я не собирал exe
вторично, с помощью spec
. После второй сборки, размер стал 71 мб. Я правда хотел бы узнать причины такого огромного размера и как его уменьшить. Заранее спасибо.
P.S. Я смирюсь с размером 30-40 мб, но 70 - это перебор.
P.P.S. Я использовал сжатие UPX и параметр strip и добился размера 56 мб (изначально 76). Но я не думаю, что это минимально возможный размер. Прошу, предлагайте еще свои варианты - 40 мб меня устроит.
Я приложу ниже spec файл:
# -*- mode: python ; coding: utf-8 -*-
from kivy_deps import sdl2, glew
block_cipher = None
a = Analysis(
['src\\main.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
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,
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
name='apps',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)