Блог
  • Начало
  • Обо мне
  • Обратная связь

Упаковываем программу на Python в .exe файл

Дата и время: 15 мая 2015 г. 23:37 | Категория: Программирование, Python

К сожалению не на всех компьютерах с ОС Windows по умолчанию установлен интерпретатор Python. Поэтому, чтобы ваша программа запустилась на любом компьютере, необходимо её упаковать в исполняемый .exe файл.

Для решения поставленной задачи существует несколько инструментов. Ранее был популярен инструмент py2exe, но в настоящий момент он не поддерживается и доступен только для второй версии Python.

1. Инструмент cx_Freeze

Таким образом, в данной статье будет описан успешный опыт использования инструмента cx_Freeze. Он актуален, поддерживает как Python 2, так и Python 3, и вообще, от его использования остались только положительные эмоции.

Допустим, что нужно упаковать в .exe программу на Python с графическим интерфейсом, например, написанном с использованием библиотеки tkinter, но вообще это не так важно. После установки инструмента, нужно просто создать скрипт для упаковки программы. Стоит отметить, что cx_Freeze позволяет создавать также установочные файлы, но данная возможность в этой статье рассматриваться не будет.

2. Скрипт для упаковки

Типичный скрип достаточно прост и имеет следующий вид (можно сохранить в командный файл .cmd или .bat, либо запустить из консоли):

python cxfreeze program.py --base-name Win32GUI --target-dir program -OO --icon=icon.ico

Данный скрипт написан с учётом того, что путь к python.exe прописан в Path. Всё достаточно очевидно. Вызывается скрипт cxfreeze, которому в качестве параметра передаётся только файл, содержащий точку входа в приложение (в данном случае program.py), всё остальное подтянется автоматически. Параметр --base-name Win32GUI указывает, что это приложение с графическим интерфейсом и благодаря этому не отображается консоль при работе программы. --target-dir указывает в какую папку поместить полученные файлы, -ОО - оптимизация, а --icon=icon.ico путь к иконке для приложения.

В результате выполнения скрипта будет получен файл program.exe и и ещё целая куча вместе с ним в указанной папке. Единственный минус, что программа может выйти сравнительно объёмной (раза в 4 больше, чем аналогичная на C++).

Чтобы упаковать консольную программу нужно просто убрать параметр --base-name Win32GUI. О дополнительных командах и возможностях можно узнать на официальном сайте cx_Freeze.

comments powered by Disqus
Select language:
  • Русский
  • English

  • Программирование

    Python C++ JavaScript

    Веб-разработка

    Django ASP.NET

    Мобильная разработка

    Windows Phone Android

    Разработка игр

    Unity3d Blender

    Артем Устимов © 2014