Упаковка Python программы в EXE файл

Чтобы понять, зачем это может потребоваться, предположим, что вы написали программу на Python. И теперь нужно ее показать руководителю, заказчику или другу. И здесь сразу могут возникнуть трудности. Потому что принимаемая сторона вряд ли обладает познаниями в программировании и к тому же не имеет на компьютере установленного Python, чтобы иметь возможность запустить ваш код. 

Гораздо проще заранее позаботиться о простоте запуска Python программы, и упаковать ее в исполняемый EXE файл. Преимущество такого файла в том, что он запускается любым пользователем на любом компьютере под управлением Windows. Даже если на компьютере не установлен Python.

Для упаковки программы будем использовать пакет PyInstaller и надстройку над ним auto-py-to-exe

Ссылки на документацию по данным пакетам:

www.pyinstaller.org

https://pypi.org/project/auto-py-to-exe/

PyInstaller генерирует EXE файл из командной строки. А auto-py-to-exe надстраивает над PyInstaller пользовательский интерфейс, в котором удобно выбирать различные параметры.

Установка пакетов для упаковки в EXE файл

Для установки пакетов, мы будем использовать pip — систему управления пакетами, написанными на Python.

    1. В поиске Windows набираем cmd
    2. Запускаем приложение Командная строка от имени администратора (ВАЖНО!)
    3. Набираем команды для установок пакетов и нажимаем Enter:

      pip install pyinstaller


      • pip install auto-py-to-exe
    4. Дополнительные пакеты установлены.

Упаковка Python программы в EXE файл

Давайте упакуем с помощью установленных пакетов готовую программу A/B Калькулятор.

Для начала, посмотрим как она запускается в неупакованном виде. Открываем файл программы в редакторе Geany и нажимаем Выполнить (F5). Программа выполняется на фоне командной строки. И когда мы окно программы закрываем, окно консоли еще остается открытым.

Перед генерацией EXE файла подготовим директорию, куда он будет сохраняться. Например, на Рабочем столе создаем папку Генерация EXE

  1. Запускаем командную строку от администратора
  2. Вводим команду auto-py-to-exe
  3. В окне приложения производим настройки:
    • Указываем путь к директории с исходным файлом программы
    • Выбираем опцию Один файл
    • Выбираем опцию Оконное приложение (скрыть консоль)
    • Нажимаем Настройки и указываем путь к директории экспорта, куда будет сохранен готовый EXE файл
    • Жмем кнопку Конвертировать PY в EXE

Некоторое время программа производит обработку. После окончания обработки появляется кнопка Открыть папку вывода. Нажимаем ее и видим в папке готовый EXE файл.

Запускаем EXE файл и проверяем работоспособность. Программа AB Калькулятора запустилась без использования консоли. Теперь файл программы можно пересылать для запуска абсолютно на любом компьютере.

Примечание. Если в процессе запуска EXE файлов возникают проблемы, проверьте, установлен ли Microsoft Visual C++ Redistributable. Если требуется его установка, найти его можно по ссылке.

Узнать больше об инструментах анализа данных вы можете на нашем бесплатном вебинаре «Как стать аналитиком данных за 6 месяцев и начать зарабатывать от 50 000 до 200 000 рублей в месяц удаленно».

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

  • зачем устанавливать pyinstaller?

  • Нужен другой способ, потому что если сделать так, как в статье, то антивирусы будут ругаться

  • При запуске py to exe нужно его запускать не от windows32 а с того места где у вас лежит сам файл,об этом говориться при конвератции файла изза чего конвертация не пройдет и будет ошибка с просьбой не запускать pyinstaller из под администратора,незнаю как у вас но у меня получилось без запуска терминала от администратора

  • Конвертация получилась только при запуске программы не от администратора. Но на получившийся .exe сразу стал ругаться антивирус, определяя его как троян.

  • Чтобы исправить проблему запустите переместите файл в любую папку кроме system32 и в этой папке нажмите shift + пкм и нажмите «запустить окно PowerShell здесь» а там уже пишите auto-py-to-exe и все работает без ошибок по крайней мере у меня

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.