减少可执行文件的大小

时间:2020-05-27 22:19:14

标签: python python-3.x kivy pyinstaller

在StackOverflow的大量帮助下,我设法在Kivy应用程序中使用PyInstaller为Windows生成了一个可执行文件。最重要的帮助来自herehere

我的规格文件是:

# -*- 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之后,创建了一个全新的virtualenv,comand 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

它运行良好,只有一个可执行文件,但仍然具有 37MB (实际上比我第一次尝试的235MB好得多)。我想知道是否可以进一步减少它(也许像我读过其他人所说的那样, 7MB 左右)

0 个答案:

没有答案