Когда я закончил работу над скриптом для распознавания текста то столкнулся с неожиданной проблемой. Дело в том что компьютер на котором его планировалось запускать работает под управлением ОС Windows и у оператора нет возможности установить python и необходимые библиотеки. Я столкнулся с таким препятствием впервые так как раньше мои скрипты применялись только на компьютерах с *nix системами, а там поставить все необходимое из репозитория не проблема. Решить вопрос я смог при помощи cx_Freeze. Свой опыт по его использованию я решил изложить в этом небольшом мануале.
Анамнез
cx_Freeze это набор скриптов и модулей для сборки поставки приложения из python скриптов. Является прямым конкурентом py2exe и py2app в отличии от них является кросс-платформенным и потенциально способен работать на любой платформе на которой работает сам python.
Фреймворк опубликован под лицензией PSF.
Рецепт
Первое что вам потребуется сделать - установить пакет cx_Freez. Проще всего это можно сделать при помощи pip.
После этого, в папке скрипта который должен быть собран, необходимо создать скрипт сценария сборки. По конвенции он может иметь любое имя, я же назвал свой "setup.py". Ниже приведен пример скрипта сборки для проекта Dummy OCR:
Параметры компиляции могут быть установлены как атрибуты конструктора объекта Executable. Также некоторые из них можно передать через словарь из параметров (в примере build_exe_options). Ниже рассмотрены основные опции компиляции приложения и описание:
После создания сборочного скрипта вам достаточно запустить его передав необходимую команду. К примеру:
Каждая из этих команд может быть сконфигурированна своим набором параметров. Ознакомится с ними можно на официальном сайте.
Почему не py2exe
Py2exe был отличной утилитой но к сожалению не обновлялся с 2008-го года. Посему я решил попробовать нечто более актуальное. Хотя официальный туториал утверждает о наличии поддержки версий языка вплоть до 3.1.
Ссылки
Официальный сайт.
Репозиторий на BitBucket.
Анамнез
cx_Freeze это набор скриптов и модулей для сборки поставки приложения из python скриптов. Является прямым конкурентом py2exe и py2app в отличии от них является кросс-платформенным и потенциально способен работать на любой платформе на которой работает сам python.
Фреймворк опубликован под лицензией PSF.
Рецепт
Первое что вам потребуется сделать - установить пакет cx_Freez. Проще всего это можно сделать при помощи pip.
После этого, в папке скрипта который должен быть собран, необходимо создать скрипт сценария сборки. По конвенции он может иметь любое имя, я же назвал свой "setup.py". Ниже приведен пример скрипта сборки для проекта Dummy OCR:
Параметры компиляции могут быть установлены как атрибуты конструктора объекта Executable. Также некоторые из них можно передать через словарь из параметров (в примере build_exe_options). Ниже рассмотрены основные опции компиляции приложения и описание:
| Название опции | Описание |
| script | Имя файла скрипта. Нельзя передать через словарь параметров. |
| initScript | Инициализирующий скрипт. Будет выполнятся перед выполнением основного скрипта. Как правило применяется для конфигурации окружения. Нельзя передать через словарь параметров. |
| base | Тип приложения. По факту имя исполняемого файла-болванки для целевой платформы который будет использован. Можно задать свой но записав абсолютный путь, иначе путь следует указывать начиная от поддиректории cx_Freeze. Для Windows из коробки поддерживаются следующие варианты:
|
| path | Список путей где будет проводится поиск. Нельзя передать через словарь параметров. |
| targetDir | Имя директории с билдом. Нельзя передать через словарь параметров. |
| targetName | Имя исполняемого файла. Нельзя передать через словарь параметров. |
| includes | Список модулей включенных в компиляцию. |
| excludes | Список модулей исключенных из компиляции. |
| packages | Список пакетов включенных в компиляцию. |
| replacePaths | Модифицирует имена файлов привязанных к объектам в коде при выводе в tracebacks. Принимает список кортежей состоящих из двух элементов "путь который следует найти" и "путь который следует заменить". При поиске по ‘*’ обработает директорию содержащую весь пакет за исключением относительного пути к модулю. |
| compress | Флаг - сжимать байт-код модулей. |
| copyDependentFiles | Флаг - копировать зависимые файлы в сборку. |
| appendScriptToExe | Флаг - указывает на необходимость включить скрипт непосредственно в тело исполняемого файла. |
| appendScriptToLibrary | Флаг - указывает на необходимость включить скрипт в архив библиотек сборки. |
| icon | Имя файла-иконки который должен быть включен в исполняемый файл для Windows приложения, или помещен в директорию сборки для других платформ. |
| namespacePackages | Список неймспейс-пакетов (их пути изменены при помощи pkgutil) |
| shortcutName | Имя ярлыка исполняемого файла в случае включения в MSI-пакет. |
| shortcutDir | Имя директории в которой будет расположен ярлык после установки MSI-пакета. |
После создания сборочного скрипта вам достаточно запустить его передав необходимую команду. К примеру:
python setup.py buildНа данный момент поддерживаются следующие команды:
| Команда | Описание |
| build, build_exe | Собрать проект. |
| install, install_exe | Собрать набор exe-файлов. Применяется для установки Windows и RPM пакетов. |
| bdist_msi | Создать MSI-пакет. |
| bdist_rpm | Собрать RPM-пакет. |
| bdist_mac | Собрать приложение для Mac OS (.app - директорию). |
| bdist_dmg | Собрать DMG-образ диска для инсталляции на Mac OS. |
Каждая из этих команд может быть сконфигурированна своим набором параметров. Ознакомится с ними можно на официальном сайте.
Почему не py2exe
Py2exe был отличной утилитой но к сожалению не обновлялся с 2008-го года. Посему я решил попробовать нечто более актуальное. Хотя официальный туториал утверждает о наличии поддержки версий языка вплоть до 3.1.
Ссылки
Официальный сайт.
Репозиторий на BitBucket.

The best slot machines to play at casinos with no deposit - DrmCD
ОтветитьУдалитьFind out 경주 출장안마 how to get free spins, 김포 출장샵 no deposit bonuses, casino 논산 출장샵 games 안양 출장샵 & the best online slots. The best slot machines to play at casinos with no deposit required! 공주 출장마사지