Преобразовать код 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. Флаги позволяют настроить процесс сборки, создавая многофайловые и однофайловые приложения с иконками и без консольного окна, упрощая распространение и использование.