PyInstaller: .py в .exe — простое руководство

Преобразовать код Python в исполняемый EXE-файл — распространенная задача. Это необходимо, когда приложение должно запускаться на компьютере без установленного интерпретатора Python. Существуют различные решения, например, библиотеки cx_Freeze и PyInstaller. Рассмотрим использование PyInstaller.

Зачем конвертировать .py в .exe?

Приложение, написанное на Python, не запустится без интерпретатора Python. Файлы с расширением .py не являются исполняемыми. Конвертация в .exe создаёт самодостаточный исполняемый файл, решающий эту проблему.

Подготовка и установка PyInstaller

Создадим простой пример программы:

name = input("Введите своё имя: ")
print(f"Привет, {name}!")
input() # Ожидание ввода для предотвращения быстрого закрытия окна

Этот код запрашивает имя пользователя и выводит приветствие. input() предотвращает мгновенное закрытие окна.

Установим PyInstaller. В терминале выполните:

pip install pyinstaller

Проверим установку:

pip show pyinstaller

Это выведет информацию об установленной версии.

Создание EXE-файла

Для конвертации скрипта example.py в EXE-файл, используйте в терминале:

pyinstaller example.py

PyInstaller соберет зависимости и создаст папку dist (с EXE-файлом) в той же директории, что и скрипт. Папку build (временные файлы) можно удалить.

Создание однофайлового EXE и добавление иконки

По умолчанию создаётся несколько файлов. Для одного исполняемого файла используйте флаг —onefile:

pyinstaller --onefile example.py

Для иконки преобразуйте изображение (желательно квадратное) в ICO-файл (например, с помощью онлайн-конвертера icoconvert.com). Разместите ICO-файл в директории проекта и используйте флаг —icon:

pyinstaller --onefile --icon=favicon.ico example.py

Замените favicon.ico на имя вашего файла.

Флаги PyInstaller

PyInstaller поддерживает флаги:

  • -D или —onedir: создаёт пакет из нескольких файлов в одной директории.
  • -F или —onefile: создаёт один исполняемый файл.
  • —distpath: указывает папку для выходных файлов.
  • —name: задаёт имя EXE-файла.
  • —icon: указывает путь к ICO-файлу.
  • —windowed: создаёт приложение без консольного окна (для GUI-приложений).

PyInstaller — удобный инструмент для создания исполняемых файлов из кода Python. Флаги позволяют настроить процесс сборки, создавая многофайловые и однофайловые приложения с иконками и без консольного окна, упрощая распространение и использование.

Что будем искать? Например,программа