У меня есть простой pandas pyinstaller exe, который превышает 40 МБ.
Мой пример 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\<NAME>\AppData\Local\Programs\Python\Python36\Lib\site-packages\PyInstaller\hooks
Возможное решение при использовании нескольких исполняемых файлов может заключаться в том, чтобы связать каждый исполняемый файл с отдельной папкой или исполняемым файлом со всеми импортируемыми.