Скажите PyInstaller, чтобы создать исполняемый файл в режиме консоли. Это дает вам рабочую консоль, которую вы можете использовать для отладки.
В верхней части основного сценария, даже до запуска первого импорта, добавьте печать «Запуск кода Python». Затем запустите упакованный исполняемый файл из командной строки. Таким образом, вы можете получить четкое представление о том, тратится ли время в загрузчике PyInstaller или в вашем приложении.
Загрузчик PyInstaller, как правило, работает довольно быстро в режиме с одним каталогом, но в режиме с одним файлом он может быть намного медленнее, потому что он все складывает во временный каталог. В Windows ввод-вывод очень медленный, и у вас есть антивирусы, которые захотят перепроверить все эти DLL-файлы.
PyQt сам по себе не проблема. PyQt генерируется SIP, который генерирует очень быстрые ленивые привязки; импорт всего PyQt выполняется быстрее, чем любая другая библиотека графического интерфейса, потому что он в основном ничего не делает: все привязки к классам / функциям создаются динамически, когда (и если!) вы обращаетесь к ним, что также экономит много памяти.
Если ваше приложение запускается медленно, это будет верно и без PyInstaller. В этом случае ваше единственное решение - это либо заставка (импортируйте только PyQt, создайте QApplication, создайте отображение заставки, затем импортируйте оставшуюся часть вашей программы и запустите ее), либо переработайте код. Я не могу вам помочь без подробностей.