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

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


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


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

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


Нам понадобиться:


Python 2.7.12 - Скачать с официального сайта

PyInstaller 3.0 - Скачать с официального сайта

pywin32-221.win32-py2.7.exe - Скачать с sourceforge

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

Enigma Virtual Box - Прямая ссылка на скачивание с оф. сайта

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

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

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

Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост

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

Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост

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

Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост

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

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

Распаковываем архив.

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

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

Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост

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

Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост
Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост

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

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

Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост

В нём всего 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

Запускаем install.bat

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

Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост

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

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

Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост

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

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

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

Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост

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

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

Python2.7 to EXE или "мне надоело гуглить" Pyinstaller, Python27toexe, Длиннопост

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

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

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


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

Автор поста оценил этот комментарий
Cython не рассматривали?
раскрыть ветку
Автор поста оценил этот комментарий

А на другом компе, без питона, оно запускается? А то я так пытался как-то сделать 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 5\Compil32.exe" /cc installer.iss


@echo Done.

@pause

раскрыть ветку
Автор поста оценил этот комментарий

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

раскрыть ветку
1
Автор поста оценил этот комментарий

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

раскрыть ветку