У меня есть скрипт, который я хочу скомпилировать в исполняемый файл. Я использую Pyinstaller для этой задачи, и сгенерированный exe-файл слишком велик.
Существует несколько импортов, один из которых - pywinauto . Если я комментирую импорт pywinauto, я получаю исполняемый файл с 20 МБ. С pywinauto я получаю исполняемый файл с 232mb!
Примечание: я запускаю pyinstaller из виртуальной среды, в которой я только что установил необходимые зависимости python, которые я использую в сценарии.
Вот список импортов, которые я использую:
import os,subprocess,datetime, argparse, math, win32con
import boto3
from botocore.exceptions import NoCredentialsError
from botocore.client import Config
import wx,wx.adv
from pubsub import pub
from win32api import GetSystemMetrics
from pywinauto.application import Application
from pywinauto.keyboard import SendKeys
from pywinauto.findwindows import find_window
from base64 import b64decode
from zlib import decompress
from io import BytesIO
Команда Pyinstaller, которую я выполняю: pyinstaller --noconsole --onefile --i=rec.ico --clean script.py
pip list
в моей виртуальной среде:
Package Version
--------------- --------
boto3 1.9.246
botocore 1.12.246
comtypes 1.1.7
docutils 0.15.2
jmespath 0.9.4
Pillow 6.2.0
pip 19.2.3
pubsub 0.1.2
pypiwin32 223
python-dateutil 2.8.0
pywin32 225
pywinauto 0.6.7
s3transfer 0.2.1
setuptools 40.8.0
six 1.12.0
urllib3 1.25.6
wheel 0.33.6
wxPython 4.0.6
Есть ли способ уменьшить размер исполняемого файла?
В основном я использую pywinauto для отправки команды сочетания клавиш в другое приложение из моего скрипта. Если для этого есть альтернативная библиотека, которая сделает мой исполняемый файл меньше, я, конечно, попробую.
Спасибо!
===================
РЕДАКТИРОВАТЬ:
Я пытался скомпилировать с: pyinstaller --noconsole --onedir --i=rec.ico --clean script.py
Теперь я получаю папку с 660 МБ !!! И приложение загружается ПУТЬ быстрее (раньше требовалось около 15 секунд, теперь почти мгновенно).
В папке приложения содержится МНОГО DLL-файлов, 19 из которых являются самыми крупными, и их общая сумма достигает 537 МБ. .
Любые предложения о том, как это урезать?