Для начала было решено писать всё на С++ (тем более я использую Qt), но мне очень не хватало батареек python`а. Поэтому я начал смотреть в сторону программ сборщиков в исполняемый файл для python.
Когда-то давно, для этих целей я пользовался zxFreeze, это безусловно отличный проект, но посмотрев документацию, я так и не нашёл способ запихать все используемые библиотеки в один единственный исполняемый файл, да и размер результатов не впечатлил. У библиотеки есть один безусловный плюс, она умеет работать с версиями python`а >= 3.0
Есть так-же проект py2exe умеющий всё что мне нужно, но, посмотрев дату последнего релиза (2008 год), я решил оставить старичка в покое.
И, наконец, герой сегодняшнего повествования, на котором я и остановил свой выбор, pyinstaller.
Важные для меня достоинства библиотеки:
Обо всех достоинствах вы можете прочитать на странице проекта.
Установка и настройка
Всё, теперь мы можем им пользоваться для своих нужд.
Сборка проекта
@echo off
set progname=CardEditor
set pyinstaller_dir=D:\bin\apps\pyinstaller
%pyinstaller_dir%\Makespec.py --onefile --icon=icon.ico --name=%progname% main.py -X -c
%pyinstaller_dir%\Build.py %progname%.spec
rd build /s /q
del warn%progname%.txt
del logdict2.6.6.final.0-1.log
del %progname%.spec
copy dist\%progname%.exe %progname%.exe
rd dist /s /q
echo.
pause
В переменные progname
и pyinstaller_dir
следует вписать имя проекта и путь к директории pyinstaller. Подробнее с синтаксисом команды Makespec можно ознакомится здесь.
Результирующие исполняемые файлы для небольших утилит, получились следующих размеров:
С PyQt4 - 8.35 Mb
Без Qt - 3.50 Mb
Что как я считаю, весьма недурно.
пятница, 20 июля 2012 г.
Pyinstaller или забудьте от таскании с собой интерпретатора
В последнее время мне часто приходится писать небольшие утилитарные приложения, которые я потом передаю другим людям для работы с ними. Соответственно python на этих машинах не установлен. А заставлять людей его ставить, тоже не очень хочется. Тут-то и возникает проблема с портабельностью приложения.
Первым делом скачиваем дистрибутив пакета со страницы проекта.
Последней версией на данный момент является 1.5.1 прямая ссылка.
После скачивания и распаковки архива, пакет следует сконфигурировать, для этого переходим в директорию пакета и запускаем Configure.py
Сборка проходит в два этапа, первым делом с помощью Makespec.py создаётся файл .spec , включающий в себя все настройки, необходимые для сборки. Следующим этапом идёт сама сборка в исполняемый файл, производимая скриптом Build.py.
Для упрощения жизни, я написал простой батник под Windows, автоматизирующий сборку:
Подписаться на:
Комментарии к сообщению (Atom)
Сам пользуюсь для таких нужд С++ Qt , так , что размер не пугает.Ok обязательно попробую.
ОтветитьУдалить