Как ускорить запуск .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 шт):

Автор решения: gil9red

А из пайчарма запускается моментально.

оттуда сразу запускается скрипт.

При запуске программы, созданной pyinstaller, сначала идет распаковка архива с питоном в временную папку, а после запуск этого скрипта.

Хотите ускорение, не делайте exe одним файлом.

Еще можно отказаться от pyinstaller: завести отдельную папку с питоном и библиотеками, отдельную папку с вашими скриптами и, например, через батник запускайте скрипты из вложенного питона. В этом случае можно сделать обфускацию скрипта, чтобы было сложнее вносить изменения в код

→ Ссылка
Автор решения: 7on

Для компиляции я использовал pyinstaller. У меня получилось ускорить запуск .exe путем удаления из команды флага -F. Таким образом раньше для компиляции я писал pyinstaller -w -F -i "path/to/icon" main.py, теперь pyinstaller -w -i "path/to/icon" main.py. Этот флаг влияет на то, сколько файлов получиться после компиляции. В случаем с использование флага у вас получится один .exe файл, которого будет достаточно для запуска программы, а теперь их стало в несколько раз больше. Зато процесс запуска значительно ускорился, т.к раньше ему приходилось при каждом запуске создавать временную папку с всеми файлами, а теперь она есть по умолчанию.

→ Ссылка