В этом посте я попытаюсь рассказать, как любой скрипт/проект Python можно преобразовать в отдельное приложение, которое может работать на любой машине с той же ОС.

Я наткнулся на множество примеров приложений Pyinstaller, но большинство из них были простыми исполняемыми файлами, выполняющими базовые действия. Затем я подумал о создании отдельного приложения для чего-то, что имеет много зависимостей от пакетов. Поэтому я использовал проект Python, в котором используется редактируемый файл конфигурации, пользовательский интерфейс на основе PyQt и множество пакетов.

Шаг 1. Создайте виртуальную среду
Виртуальная среда должна быть создана для установки только необходимых пакетов в вашем приложении. Это поможет нам сохранить небольшой размер приложения. Если вы собираетесь использовать библиотеки pandas и numpy, я предлагаю вам несоздавать виртуальную среду с помощью conda (а лучше создавать ее с помощью pyenv), так как это приведет к очень большому исполняемому файлу.

Шаг 2. Установите необходимые пакеты и пакет Pyinstaller
Установите все пакеты, необходимые для вашего проекта. Также установите пакет Python Pyinstaller — он будет использоваться для сборки вашего приложения.

Шаг 3. Создайте файл спецификации

>> pyi-makespec [ — onefile] yourprogram.py

В строке выше yourpraogram.py будет основным файлом вашего проекта Python.

Параметр -onefile используется, чтобы указать, хотите ли вы создать однофайловое приложение или распределенную папку. При создании spec-файла для моей программы я не использовал параметр -onefile, так как он немного замедляет выполнение.

Шаг 4. Внесите изменения в файл спецификации
Вы можете редактировать определенные параметры в файле спецификации. Например: если наш проект Python использует настраиваемый файл, который может быть изменен пользователем, вы можете указать его в параметре datas

datas=[('config\\config.ini', '.\\config')]

Иногда pyinstaller по умолчанию не включает библиотеки всех пакетов, в этом случае мы можем указать имена пакетов в параметре hiddenimport

hiddenimports=['sklearn.utils._cython_blas', 'sklearn.neighbors.typedefs', 'sklearn.neighbors.quad_tree', 'sklearn.tree._utils', 'dask', 'distributed', 'inflect']

Шаг 5: Создание исполняемого файла
После того, как все будет сделано в файле спецификации, вы можете создать исполняемый файл, используя приведенную ниже команду.

>> pyinstaller spec_file

Вы можете найти окончательный исполняемый файл в папке dist. Теперь приложение готово к развертыванию на любой машине, все, что вам нужно, это скопировать папку dist :)

Примечание. Приложения Pyinstaller зависят от ОС. Если вы собираетесь запускать приложение в Linux или MacOS, вам придется создать приложение с использованием той же ОС. Не стесняйтесь обращаться, если вам нужна помощь. Здоровья..!!!