我使用Kivy在Python 3中编写了一个GUI应用程序,该应用程序需要分发给需要可执行文件的非技术熟练人员。
我第一次尝试构建.exe时,由于Numpy是mkl版本而不是OpenBLAS版本,所以我得到了800MB的dist文件夹。我通过为应用程序(from this question)使用专用环境来解决该问题,现在我只有170 MB,即使压缩后也仍然很大。我希望我可以达到50MB甚至更低,但是我无法理解文档的建议...我确定有很多kivy依赖项会插入.exe dist中,但并未使用。
现在,我正在使用文档中建议的标准.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')
如何通过排除未使用的kivy依赖项来进一步减小可执行文件(实际上将分发的dist文件夹)的大小?
有用信息: