Как сделать 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 не сильно отличается:)
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/