Руководство к PyInstaller ( http://pyinstaller.readthedocs.org/) содержит достаточно информации. Взгляните на страницу http://bit.ly/pyinstaller-reqs, где приводятся требования для PyInstaller, чтобы убедиться, что ваша система совместима: для Windows вам потребуется версия XP или выше, для систем Linux — несколько консольных приложений (списки документации, где вы можете их найти), а для OS X — версия 10.7 (Lion) или выше.
Вы можете использовать Wine (эмулятор Windows) для кросс-компиляции для Windows при работе с Linux или OS X.
Чтобы установить PyInstaller, используйте pip из той виртуальной среды, из которой будете строить ваше приложение:
$ pip install pyinstaller
Для создания стандартного исполняемого файла из модуля script.py введите следующую команду:
$ pyinstaller script.py
Для создания оконного приложения для OS X или Windows задайте флаг — windowed в командной строке:
$ pyinstaller — windowed script.spec
Появляются две новые папки и файл в том же каталоге, где вы выполнили команду pyinstaller:
• файл с расширением. spec, который можно запустить с помощью PyInstaller для повторного создания сборки;
• каталог сборки, в котором хранятся некоторые файлы журнала;
• каталог dist, в котором хранятся главный исполняемый файл и некоторые зависимые библиотеки Python.
PyInstaller помещает все библиотеки Python, используемые вашим приложением, в каталог dist, поэтому, когда начнете распространять исполняемый файл, не забудьте, что вы должны распространять весь каталог dist.
Файл script.spec можно изменить для того, чтобы настроить сборку ( http://pythonhosted.org/PyInstaller/#spec-file-operation). Вы можете сделать следующее:
• связать файлы данных и исполняемые файлы;
• включить библиотеки времени выполнения (файлы с расширением. dll или. so), которые PyInstaller не может определить автоматически;
• добавить для исполняемого файла флаги времени выполнения Python.
Это полезно, поскольку теперь файл можно хранить с помощью системы контроля версий, что упрощает создание будущих сборок. Вики-страница PyInstaller содержит рецепты сборки ( https://github.com/pyinstaller/pyinstaller/wiki/Recipes) для некоторых распространенных приложений, включая Django, PyQt4, а также функционал по подписанию кода для Windows и OS X. Там же вы найдете последнюю версию руководства для PyInstaller. Теперь отредактированный файл script.spec можно запускать как аргумент для pyinstaller (вместо повторного использования script.py):
$ pyinstaller script.spec

Когда PyInstaller предоставляют файл с расширением. spec, он берет все параметры из содержимого этого файла и игнорирует параметры командной строки, за исключением следующих: — upx-dir=, -distpath=, -workpath=, -noconfirm, и — ascii.
Как и PyInstaller, cx_Freeze ( https://cx-freeze.readthedocs.org/en/latest/) может замораживать проекты Python для ОС Linux, OS X и Windows. Однако команда разработчиков cx_Freeze не рекомендует компилировать для Windows с помощью Wine, поскольку им пришлось вручную скопировать некоторые файлы, чтобы приложение работало. Для установки спользуйте pip:
$ pip install cx_Freeze
Самый простой способ создать исполняемый файл — запустить cxfreeze из командной строки, но есть и другие варианты (вы можете использовать систему контроля версий), если вы пишете сценарий setup.py.
Это тот же самый файл setup.py, что и для модуля distutils из стандартной библиотеки Python: cx_Freeze расширяет distutils таким образом, чтобы предоставлять несколько дополнительных команд (и модифицировать некоторые другие).
Данные параметры можно передавать через командную строку, сценарий установки или с помощью конфигурационного файла setup.cfg ( https://docs.python.org/3/distutils/configfile.html).
Сценарий cxfreeze-quickstart создает простой файл setup.py, который может быть изменен и сохранен в системе контроля версий для будущих сборок. Рассмотрим пример сессии для сценария с именем hello.py:
$ cxfreeze-quickstart
Project name: hello_world
Version [1.0]:
Description: "This application says hello."
Python file to make executable from: hello.py
Executable file name [hello]:
(C)onsole application, (G)UI application, or (S)ervice [C]:
Save setup script to [setup.py]:
Setup script written to setup.py; run it as:
····python setup.py build
Run this now [n]?
Теперь у нас есть сценарий установки и мы можем изменить его в соответствии с нуждами нашего приложения. Параметры вы можете найти в документации к cx_Freeze в разделе distutils setup scripts ( https://cx-freeze.readthedocs.org/en/latest/distutils.html). Существуют также пример сценария setup.py и работающие приложения с минимальной функциональностью, которые показывают, как замораживать приложения, использующие PyQT4, Tkinter, wxPython, Matplotlib, Zope и другие библиотеки. Вы можете найти их в каталоге samples/ исходного кода cx_Freeze ( https://bitbucket.org/anthony_tuininga/cx_freeze/src): перейдите из каталога высшего уровня в cx_Freeze/cx_Freeze/samples/. Код также поставляется с установленной библиотекой. Вы можете получить путь, введя следующую команду:
Читать дальше