Баннер мобильный (3) Пройти тест

6 способов конвертировать код на Python в exe-файл

Создаем исполняемый файл из исходного кода

Подборка

21 ноября 2024

Поделиться

Скопировано
6 способов конвертировать код на Python в exe-файл

Содержание

    Представьте, что вы написали полезную программу на Python — от удобного скрипта до полноценного приложения. Вы хотите поделиться своим творением с друзьями, коллегами или широкой аудиторией, но тут возникает проблема: не у всех установлен Python, инструкция по работе с кодом может оказаться слишком сложной для пользователей, да и вы можете не захотеть раскрывать свой код. Как же сделать так, чтобы ваш код заработал «из коробки», даже на компьютере человека, который ничего не знает о программировании?

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

    На Windows исполняемые файлы имеют формат .exe. Для превращения Python-кода в этот формат существует несколько инструментов. В этой статье мы рассмотрим их и начнем с одного из самых популярных.

    PyInstaller

    Эта библиотека позволяет достаточно просто создавать исполняемые файлы из исходников. Но прежде чем использовать эту библиотеку, сначала нужно ее установить. Для установки этой и последующих библиотек применяется пакетный менеджер PIP, который берет библиотеки с сервиса PyPI. В современных версиях Python он устанавливается вместе с интерпретатором и сопутствующими компонентами. Так что если в системе уже установлена свежая версия Python, то устанавливать PIP не придется. Для установки PyInstaller нужно ввести в командной строке следующее:

    pip install PyInstaller

    После ввода нажимаем на клавишу Enter и дожидаемся окончания процесса установки. Для примера возьмем такую простенькую программу:

    import random
    
    name = input("Введите ваше имя: ")
    
    list = ["Крепкого вам здоровья!", "Хорошего дня!", "Отличного вам настроения!", "Пусть этот день подарит вам только самые положительные эмоции", "Ты - лучший! Все получится, если захотеть!", "Хорошего настроя и добрых людей вокруг!", "Пусть солнце греет, если не снаружи, то внутри!", "Мир у твоих ног - дерзай, действуй!", "Хорошего утра и приятного дня! Ты один на миллион!", "Побольше сил, а еще бодрости и уверенности в себе!"]
    
    print("Привет, ", name, "! ", random.choice(list), sep="")

    Эта программа просит пользователя ввести его имя, а после ввода выводит приветствие в формате «Привет, <имя пользователя>!». К этому приветствию добавляется рандомная фраза-пожелание из списка list. Вот так это выглядит:

    Введите ваше имя: Алексей
    Привет, Алексей! Пусть солнце греет, если не снаружи, то внутри!

    Сохраним исходный код нашего приложения под именем hello.py. Теперь откроем командную строку в той же папке, в которой находится наш исходник. В командной строке напишем:

    pyinstaller --onefile hello.py

    Опция —onefile означает, что все необходимые файлы и компоненты приложения будут записаны в один исполняемый файл. А если мы перепишем команду таким способом:

    pyinstaller --onedir hello.py

    то в этом случае будет создана отдельная директория dis, и все файлы, необходимые для работы приложения, будут помещены в нее. Если использовать команду без опций, то есть вот так:

    pyinstaller hello.py

    то в данном случае по умолчанию будет применена опция —onedir. 

    Стоит отметить, что эта библиотека, как и некоторые другие, может создавать исполняемые файлы не только для операционной системы Windows. Если запустить вышеприведенные команды, например, на каком-нибудь дистрибутиве GNU/Linux, то исполняемые файлы будут создаваться именно под эту операционную систему.

    py2exe

    Еще одна библиотека, которая поможет преобразовать сценарий на Python в исполняемый exe-файл, называется py2exe. Для установки этой библиотеки нужно ввести такую команду:

    pip install py2exe

    Для примера возьмем ту же программу с выводом приветствия из прошлого раздела. Для запуска процесса конвертации при помощи py2exe нам потребуется создать файл конфигурации. Рядом с файлом hello.py создадим еще один файл с именем setup.py и с таким содержимым:

    from distutils.core import setup
    import py2exe
    
    setup(console=['hello.py'])

    Теперь можно приступать к конвертации. Откроем командную строку в той же директории, в которой находятся наши скрипты, и в ней напишем:

    python setup.py py2exe

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

    cx_Freeze

    Эта библиотека тоже может легко преобразовать любой скрипт на Python в исполняемый exe-файл. Для ее установки в командной строке нужно написать следующее:

    pip install cx_Freeze

    После установки библиотеки для преобразования того же скрипта hello.py нам также потребуется конфигурационный файл. У нас уже есть один с именем setup.py, предназначенный для py2exe. Заменим его содержимое на это:

    import sys
    from cx_Freeze import setup, Executable
    
    setup(
        name="Hello",
        version="1.0",
        description="Description of your program",
        executables=[Executable("hello.py")]
    )

    Далее можно переходить к преобразованию. Действуем примерно так же, как и в прошлом разделе, — открываем командную строку из папки со скриптами и пишем в ней следующее:

    python setup.py build

    После выполнения этой команды у нас появится папка с именем build, а в ней будет находиться наш исполняемый файл.

    Nuitka

    Эта библиотека транслирует исходный код на языке Python в код на языке C. Далее этот код преобразуется в исполняемые файлы. Таким образом, для запуска этих файлов не нужен установленный на компьютере пользователя интерпретатор Python. Установить эту библиотеку можно, введя в командной строке следующее:

    pip install Nuitka

    Для сборки исполняемого файла нужно скомандовать из той же директории, в которой находится скрипт:

    nuitka hello.py

    Но тут следует сказать, что если вводить данную команду без опций, то исполняемый файл будет по прежнему зависеть от установленного в системе интерпретатора Python. Поэтому, если нужно получить полностью независимый от внешних компонентов исполняемый файл, необходимо применять специальные опции. Например, добавить опцию —standalone, то есть скомандовать:

    nuitka --standalone hello.py

    Будет создана папка dist, в которую Nuitka поместит все нужные зависимости. А если добавить опцию —onefile:

    nuitka --onefile hello.py

    то получится один файл, способный работать автономно.

    Auto Py to Exe

    Этот инструмент предоставляет для пользователя удобный графический интерфейс и использует PyInstaller для преобразования скрипта в exe-файл. Для установки командуем:

    pip install auto-py-to-exe

    После установки выполняем следующую команду:

    auto-py-to-exe

    Должно открыться такое окно:

    Auto Py to Exe
    Источник: автор статьи

    Просто указываем путь к файлу со скриптом, отмечаем нужные чекбоксы, выбираем тип приложения (консольное или оконное) и что мы должны получить на выходе (упаковать все в одну папку или в один файл). Также можно указать иконку для приложения и различные дополнительные файлы. Этими файлами могут быть, например, какие-нибудь ресурсы в виде изображений или аудио- и видеофайлы. После всех приготовлений нажимаем на кнопку «Конвертировать .py в .exe».

    Начнется процесс конвертации. В разделе «Вывод» будет отображен весь процесс превращения исходника в исполняемый файл. По окончании процесса преобразования в том же каталоге, где находится исходник, будет создана папка Output, в которой мы найдем наш исполняемый файл. Кстати говоря, эту папку можно открыть прямо из интерфейса программы Auto Py to Exe. После завершения конвертации под разделом «Вывод» появится кнопка «Открыть папку вывода».

    Py2exe-GUI

    Еще один графический инструмент для создания исполняемых файлов из исходников на Python. Так же как и в Auto Py to Exe, здесь используется PyInstaller для преобразования файлов. Для установки нужно скомандовать:

    pip install py2exe-gui

    Для запуска программы вводим следующую команду:

    py2exe-gui

    Перед нами должно появиться такое окно:

    Py2exe-GUI
    Источник: автор статьи

    Так же как и в случае с Auto Py to Exe, здесь нужно указать расположение скрипта и что желаем получить на выходе (папку или файл). Можно указать версию Python, которую следует использовать при конвертации. Дополнительно есть возможность подключить какие-либо файлы данных или бинарные файлы, если они необходимы для работы приложения. В результате мы получим папку dist, в которой будет содержаться исполняемый файл.

    Подведем итог

    EXE-файл — это исполняемый файл, который можно запускать на устройствах с Windows без установки Python. Конвертация кода в EXE помогает делиться программами с другими пользователями в удобном виде.

    Мы разобрали шесть инструментов для создания EXE-файлов из Python-кода:

    • PyInstaller и Auto Py to Exe — простые и удобные для начинающих.
    • Py2exe и Py2exe-GUI — подойдут для Windows-проектов.
    • Nuitka — мощный инструмент для оптимизации и повышения производительности.
    • cx_Freeze — гибкий вариант для кроссплатформенных приложений.

    Каждый инструмент имеет свои особенности. Выбор зависит от сложности проекта, нужной функциональности и ваших предпочтений.

    Подборка

    Поделиться

    Скопировано
    0 комментариев
    Комментарии