Ich habe eine einfache pandas pyinstaller exe, die über 40MB ist.Größe der pyinstaller exe reduzieren
My exe Beispiel:
import collections
import csv
import selenium
import pandas
print('hi')
40MB + hierfür scheint ein bisschen übertrieben.
Wie kann ich das so weit wie möglich reduzieren?
Eine Methode:
pyinstaller --onefile --exclude matplotlib --exclude scipy --exclude pandas --exclude numpy.py
Dies ist jedoch nicht praktisch, wenn man bedenkt, wie groß die Ausschlussliste wäre.
Wie wähle ich einen Ordner für pyinstaller, um Module zu erhalten und alles andere auszuschließen, damit ich eine kleine Anwendung habe?
Spec-Datei:
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)
Es ist auch erwähnenswert. Standardmäßig erkennt Pyinstaller keine Pandas.
Anzahl:
hiddenimports = ['pandas._libs.tslibs.timedeltas']
To: C:\Users\<NAME>\AppData\Local\Programs\Python\Python36\Lib\site-packages\PyInstaller\hooks
Eine mögliche solution wenn mehrere ausführbare Dateien verwenden, könnte jede ausführbare Datei in einen separaten Ordner zu verknüpfen oder ausführbare Datei mit allen Importen.
Wenn Sie die Abhängigkeiten entfernen, wird die Exe nicht in der Lage sein, Ihr Skript auszuführen, oder fehlt mir etwas? –
@FlorentB. Pyinstaller verpackt andere Dinge, die nicht benötigt werden. Auch 40mb für diese exe? Ich habe versucht, es zu UPX, aber es ändert sich nicht viel für mich. Muss es falsch machen. –
Wenn ich 'pyinstaller --onefile test.py' (test.py enthält Ihr Beispiel), bekomme ich eine ausführbare Datei, die etwa 5 MB ist. –