Как ускорить запуск .exe'шника, с программкой на "PySimpleGUI", сделанного в "Pyinstaller EXE Creator"?
Сделал простенькую программку на python + PySimpleGUI. Принимает файлик html, парсит номера, поставляет в урл специального сайта делает полностраничный скриншот полученной страницы с помощью selenium, так же всё тот же html-файлик переводит в эксэлевскую таблицу и все сохраняет в указанную папку.
Такие библиотеки использовал:
(venv) F:\testProjekt\Fs_h>pip list
Package Version
----------------- ---------
certifi 2020.6.20
chardet 3.0.4
colorama 0.4.3
configparser 5.0.0
crayons 0.3.1
et-xmlfile 1.0.1
idna 2.10
jdcal 1.4.1
lxml 4.5.1
openpyxl 3.0.4
pip 19.0.3
PySimpleGUI 4.24.0
requests 2.24.0
selenium 3.141.0
setuptools 40.8.0
urllib3 1.25.9
webdriver-manager 3.2.1
Программка состоит из двух модулей в одном функция для конвертации в excel в другом всё остальное(я не программист, просто файлик тогда слишком длинный получится), все выполняется в одном потоке в одном процессе.
С помощью "pysimplegui-exemaker" сделал экзешник.
Так вот, между двойным кликом по экзешнику и появлением окна программы проходит примерно 40 секунд. А из пайчарма запускается моментально.
У меня довольно таки общий вопрос, можно подсказать даже в отрыве от моего примера:
Что может повлиять на это время, на что особенно можно обратить внимание что бы, хотя бы окно программы, открывалось по быстрее?
Ответы (2 шт):
А из пайчарма запускается моментально.
оттуда сразу запускается скрипт.
При запуске программы, созданной pyinstaller, сначала идет распаковка архива с питоном в временную папку, а после запуск этого скрипта.
Хотите ускорение, не делайте exe одним файлом.
Еще можно отказаться от pyinstaller: завести отдельную папку с питоном и библиотеками, отдельную папку с вашими скриптами и, например, через батник запускайте скрипты из вложенного питона. В этом случае можно сделать обфускацию скрипта, чтобы было сложнее вносить изменения в код
Для компиляции я использовал pyinstaller. У меня получилось ускорить запуск .exe путем удаления из команды флага -F. Таким образом раньше для компиляции я писал pyinstaller -w -F -i "path/to/icon" main.py, теперь pyinstaller -w -i "path/to/icon" main.py. Этот флаг влияет на то, сколько файлов получиться после компиляции. В случаем с использование флага у вас получится один .exe файл, которого будет достаточно для запуска программы, а теперь их стало в несколько раз больше. Зато процесс запуска значительно ускорился, т.к раньше ему приходилось при каждом запуске создавать временную папку с всеми файлами, а теперь она есть по умолчанию.