Как сделать exe файл в python

Компиляция программы на python 3 в exe с помощью программы cx_Freeze

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

Вопрос 1: а оно надо?

Прежде, чем начинать компилировать программу, нужно убедиться, что это действительно необходимо.

“Компиляция” программы на python – процесс, который может сопровождаться множеством проблем. Более того, это не компиляция в машинный код, как, например, программы на C, а лишь “сборка” в исполняемый файл вашей программы вместе с частью интерпретатора python.

Поэтому, если вы будете использовать программу сами или на компьютерах тех, кто её будет использовать, будет стоять интерпретатор python, то вам не нужно её компилировать.

Установка cx_Freeze

Если компилировать программу на python всё-таки нужно, то скачиваем cx_Freeze с http://www.lfd.uci.edu/

gohlke/pythonlibs/#cx_freeze (так как в ней нет одного неприятного бага, который есть в официальной версии).

Затем устанавливаем, не забывая правильно выбрать директорию, где расположен python.

Компиляция

Компилировать будем программу “блэкджек” (файл 21.py) (кому лень смотреть, привожу полный исходный код).

Создаём в папке с программой файл setup.py с содержимым:

Переходим в командную строку (обычно Пуск → Стандартные → Командная строка). Переходим в папку с программой (в моём случае D:Dimapy). Запускаем команду C:Python34python.exe setup.py build (вместо C:Python34 нужно написать папку, куда установлен python).

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

Поздравляю! В папке build теперь есть ваша папка с исполняемым файлом!

Заметьте, не файл, а папка! Все остальные файлы также нужны для работы программы (да, это недостаток cx_Freeze). К тому же, при завершении программы окно сразу закрывается (а не ждет нажатия клавиши), поэтому в конец программы нужно дописать что-то вроде:

И скомпилировать ещё раз.

Также можно создать msi-архив командой C:Python34python.exe setup.py bdist_msi.

Разумеется, при компиляции более сложных программ вы можете столкнуться с более сложными проблемами.

Для их решения следует воспользоваться официальной документацией.

Python2.7 to EXE или “мне надоело гуглить”

Честно скажу, я заколебался гуглить как из Python скрипта собрать EXE без стояния на голове. Многие конечно затыкают ссылками на всякие py2exe но: и весит много, и через раз работает, и не смог я собрать через него своё скриптруки кривые, и код не красивый.

Читать еще:  Как сделать автоответчик на мобильном телефоне

К тому же по заверению форумов пришлось бы создавать какие то стрёмные скрипты.

т.к. мой скрипт прекрасно работает на Python 2.7.12 было решено так и компилировать.

Меньше слов, больше дела.

качаем под наш Python, а то есть версии 2.7
у меня на виртуалке стоит winXPx86 поэтому win32

Для запаковки кучи библиотек в 1 файл

Качаем и устанавливаем Python (Windows x86 MSI installer)

Выбираем место установки, я выбрал по умолчанию

Обязательно добавляем Python в path.

Пришло время устанавливать pywin32

Теперь устанавливаем сам PyInstaller

Я скачал его в архиве .tar (на ХРюшке открывал с помощью 7zip)

Открываем папку, в которую распаковывали архив.

Открываем её же в cmd.

Запускаем установку, ошибок в ней возникнуть не должно.

Всё, все нужные компоненты установлены.

Переходим в папку со скриптом и создаём там install.bat

В нём всего 4 строки

Начало bat файла: @Echo off

Создание приложения: pyinstaller –onefile –onedir –console –clean -y serv.py

Удаление лишней папки (чтобы не путаться): rmdir /s /q “build”

Пауза в конце, что отловить ошибки: Pause

@Echo off
pyinstaller –onefile –onedir –console –clean -y serv.py
rmdir /s /q “build”
Pause

После того, как он закончил свою работу в папке появляются новые файлы.

Переходим в папку dist, потом в папку с названием скрипта (в моём случае serv)

Там появилось много файлов, в том числе исполняемый exe файл.

Запускаем Enigma Virtual Box (Устанавливается она кстати тупо кнопками “далее”). Выбираем сначала exe файл, а потом добавляем к нему все нужные файлы.

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

Нажимаем Process и ждём выполнения)

Удаляем все лишнее файлики, кроме выходного файла (в моём случае serv_boxed.exe)

Запускаем наш файл для проверки

Как можно видеть, всё работает 🙂

По весу конечно много, почти 5мб.

Но это вам и не С++, это Python.

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

Всё моё приложение в итоге переписано на C#.
Работает отлично, весит 10кб

А на другом компе, без питона, оно запускается? А то я так пытался как-то сделать exe но работал от только у меня )

Да, только что проверил)

да совсем просто, прямо таки в один клик.
привет от py2exe и inno setup не сильно отличается:)

Читать еще:  Фотографии сделанные на iphone 6

if exist build rd /s /q build
if exist dist rd /s /q dist

python setup.py py2exe > setup.log

“C:Program Files (x86)Inno Setup 5Compil32.exe” /cc installer.iss

Ну не в какую не компилит у меня py2exe. заваливает ошибками о том, что модули не найдены.

Inno Setup не пользовал)

@MyLittleMike , спасибо)) а что твой скрипт делает?

Ну как видно по последнему скрину, слушает 32080 порт в ожидании чего-то.

А Вы разбираетесь в этом языке программирования?

Моя программа – это мини soap сервер

Можно задать пару вопросов о Питоне, желательно на mail?

Задавай)
мыло – mike.milos@yandex.ru

На уровне print (‘Hello mir bly@t’).

привет из мира Go 😀

fmt.Println(“Hello mir bly@t”)

а он в основном где используется?)) и какие сильные стороны в сравнении с питоном?))

public static void main(String[] args) <

System.out.println(‘Hello mir bly@t’);

Очень поверхностно, я не очень хороший программист.

Учитесь на программиста?

Самообучаюсь я бы сказал.

Я конечно схороню. Но можно нескромный вопрос. А нахрена тебе питон в exe собирать?

Чтобы запускать на компе где нет питона.

Точно также как программа на Java не запустится без Java VM (иногда программы точно также с собой тащят собственную Java VM чтобы пользователь её не ставил), а браузерные игры на Flash или Unity не запустятся если в браузере соответстующие плагины не поставлены.

Или уточни вопрос.

Уточняю, зачем было писать именно на Python, если его не хотят устанавливать?

И я честно упирался писать на чём нибудь типо С++, не вышло)

Так там же и ответ:

Я человек простой, мне сказали надо чтобы был питон и чтобы потом он был в ехе.

И считается что на Python программы пишутся быстрее чем на C++. К тому же он принудительно учит делать отступы, что неплохо для новичков.

По производительности он, конечно, уступает С++, но тяжелые вычисления на “сыром” питоне обычно не делают, либо через модули на С++, либо используют Питон для быстрого прототипирования а потом переписывают на С++ или на чём там надо.

Как скомпилировать Python код в .exe

Как скомпилировать Python код в .exe | немного теории

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

Хочется отметить, что для меня Python является одним из самых интересных, мощных языков программирования. С ним я познакомился примерно в 2016 году и только спустя год осознал всю его мощь и красоту.

Читать еще:  Презентация помета щенков как сделать самому

Многие задаются вопросом, когда написали программу на Python: “А как его скомпилировать в .exe файл?”. Вопрос довольно сложный, для того, кто только открыл для себя этот язык и ещё не сталкивался с pip.

pip – система управления пакетами, которая используется для установки и управления программными пакетами, которые написаны на Python. Если кратко, то pip – это файловый менеджер языка Python.

pyinstaller – программа, которая собирает все зависимости и python-приложение в один пакет и превращает его в исполняемый файл для Windows, Linux, MacOS.

Как скомпилировать Python код в .exe | практикум

Давайте разберем, как скомпилировать Python код в .exe за минуту, с помощью Терминала(в Linux) или cmd(Windows).

Для начала, нам нужно установить pyinstaller с помощью pip. Пишем команду в командной строке:

Если вы используете Linux и у вас не установлен pip, то просто напишите команду:

На Windows, если вы не изменяли конфигурации установки Python, проблемы отсутствия pip у вас возникнуть не должно.

Вторым шагом будет переход в директорию с нашим проектом. Просто копируем путь и с помощью команды cd (наш путь) переходим в директорию, для Linux и Windows команда одинаковая.

Теперь давайте скомпилируем наш Python код в .exe, не будем тянуть.

Сделаем мы это с помощью установленного пакета pyinstaller.

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

  • -F – этот флаг отвечает за то, чтобы в созданной папке dist, в которой и будет храниться наш исполняемый файл не было очень много лишних файлов, модулей и т.п.
  • -w – этот флаг вам понадобится в том случае, если приложение использует tkinekt, оно блокирует создание консольного окна, если же ваше приложение консольное, вам этот флаг использовать не нужно.
  • -i – этот флаг отвечает за установку иконки на наш исполняемый файл, после флага нужно указать полный путь к иконке с указанием её имени. Например: D:LayOuticon.ico

Вот и всё, сегодня мы рассмотрели, как скомпилировать Python код в .exe, Если у вас остались какие-либо вопросы, пишите их в комментарии, с удовольствием отвечу.

Так же подписывайтесь на обновления сайта, тут будет ещё много интересного!

Источники:

http://pythonworld.ru/osnovy/program-compilation-with-cx-freeze.html

http://pikabu.ru/story/python27_to_exe_ili_mne_nadoelo_guglit_5454807

http://www.make-info.com/kak-skompilirovat-python-kod-v-exe/

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