Приложение Python, преобразованное как автономное для Windows с помощью Pyinstaller, работает, но запуск занимает 23 секунды

#python #performance #pyqt5 #python-standalone

#python #Производительность #pyqt5 #python-standalone

Вопрос:

Я создал приложение с помощью Python 3.7 и PyQt5 , которое отлично работает Windows 10 без проблем и запускается быстро (<1 секунды) при запуске из текстового редактора. Затем я преобразовал его с помощью PyInstaller в автономное приложение. Оно также работает нормально, но для запуска требуется около 25 секунд (!). Что делает само приложение, так это:

  • требуется текстовый файл, в котором хранятся значения с метками there
  • оно преобразует текстовый файл в CSV-файл (6 столбцов 128 строк)
  • открывается CSV-файл
  • Оно преобразует информацию из CSV в формат panda
  • затем оно оценивает определенные значения и создает отчет в соответствии со значениями (например: если значение параметра 1 равно 50, соответствующий сгенерированный текст будет «параметр высокий»)

Поскольку приложение предназначено для развертывания на компьютере, на котором не установлен python, и в рабочей среде, где эту задачу приходится выполнять много раз в день, я представляю, как пользователь lambda проклинает разработчика приложения, потому что для запуска приложения требуется 23 секунды

  • Есть ли способ оптимизировать это время или это цена, которую приходится платить за автономное приложение, написанное на интерпретируемом языке, таком как python
  • Должен ли я забыть о получении некоторой скорости от этого решения и переписать приложение на C . Если да, то проблема в том, что я ничего не знаю о C ==> существуют ли какие-нибудь автоматические переводчики?

Заранее большое спасибо за ваше понимание

Комментарии:

1. Вы, случайно, используете --onefile вместо стандартного --onedir ? Это требует распаковки некоторых зависимостей вашей программы во временный каталог при каждом ее запуске, и это единственная причина, по которой я могу предположить, почему для запуска требуется так много времени.

2. спасибо за ваш ответ @jasonharper. Итак, что я на самом деле сделал, так это сначала cd определил каталог, в котором находится приложение, а затем запустил PyInstaller app.py . Я не добавлял, --onefile ни --onedir . Как вы думаете, что я должен делать?