我有一个简单的pandas pyinstaller exe,超过40MB.
我的exe示例:
import collections
import csv
import selenium
import pandas
print('hi')
40MB对于这似乎有点矫枉过正.
我怎样才能尽可能减少这个?
一种方法:
pyinstaller --onefile --exclude matplotlib --exclude scipy --exclude pandas --exclude numpy.py
然而,考虑到排除列表的大小,这是不切实际的.
如何为pyinstaller选择一个文件夹来获取模块并排除其他所有文件,这样我可能会有一个小应用程序?
规格文件:
a = Analysis(['123.py'],
pathex=['C:\\Users\\AA\\ZZ'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='123',
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )
这也值得一提.默认情况下,Pyinstaller不会检测到pandas.
加:
hiddenimports = ['pandas._libs.tslibs.timedeltas']
To: C:\Users\\AppData\Local\Programs\Python\Python36\Lib\site-packages\PyInstaller\hooks
使用多个可执行文件时可能的solution可能是将每个可执行文件链接到单独的文件夹或所有导入的可执行文件.