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)
Выбираем место установки, я выбрал по умолчанию
Обязательно добавляем 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
Запускаем install.bat
После того, как он закончил свою работу в папке появляются новые файлы.
Переходим в папку dist, потом в папку с названием скрипта (в моём случае serv)
Там появилось много файлов, в том числе исполняемый exe файл.
Запускаем Enigma Virtual Box (Устанавливается она кстати тупо кнопками "далее"). Выбираем сначала exe файл, а потом добавляем к нему все нужные файлы.
В дополнительных опциях ставим сжатие и удаление распакованных файлов при закрытии.
Нажимаем Process и ждём выполнения)
Удаляем все лишнее файлики, кроме выходного файла (в моём случае serv_boxed.exe)
Запускаем наш файл для проверки
Как можно видеть, всё работает :-)
По весу конечно много, почти 5мб.
Но это вам и не С++, это Python.
Гайд написан для тех, кто как и я заколебался искать и тупить в англ. форумах