Уменьшить размер исполняемого файла - PullRequest
0 голосов
/ 28 мая 2020

С большой помощью 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 МБ , как я читал, как говорят другие)

...