PyInstaller. Дистрибуция кода Python

Установка и настройка

PyInstaller — обычный пакет python. Он может быть установлен с использованием pip:

pip install pyinstaller

Установка в Windows:

Для Windows установка pywin32 или pypiwin32 — обязательное условие. Когда pyinstaller устанавливается с помощью pip, то pypiwin32 устанавливается автоматически.

Установка в Mac OS X:

PyInstaller работает с Python 2.7 по умолчанию в текущей Mac OS X. Однако, если вы планируете использовать более позднюю версию Python или если вы используете какой-либо из основных пакетов, таких как PyQt, Numpy, Matplotlib, Scipy и т. п. Мы настоятельно рекомендуем установить их с помощью MacPorts, либо Homebrew.

Установка из архива:

Если установка c помощью pip недоступна, загрузите сжатый архив из PyPI .

Чтобы протестировать версию, которая находится на стадии разработки, вы можете загрузить сжатый архив из раздела разработки страницы загрузки PyInstaller.

Распакуйте архив и найдите скрипт setup.py.Выполните python setup.py install с правами администратора для установки или обновления PyInstaller.

Проверка установки

Команда pyinstaller должна присутствовать в системном пути для всех платформ после успешной установки.

Это можно проверить, набрав  в командной строке.

pyinstaller --version

Использование Pyinstaller

Перейдите к каталогу, в котором находится ваш файл и введите:

pyinstaller myfile.py

Pyinstaller анализирует файл и создает:

Файл myfile.spec в том же каталоге, что и myfile.py

Папку сборки в том же каталоге, что и myfile.py

Папку dist в том же каталоге, что и myfile.py

Файлы журналов в папке сборки

Само приложение можно будет найти вложенным в папку dist

Объединение в одну папку

Если PyInstaller запускается без каких-либо параметров для myscript.py, то по умолчанию на выход получаем одну папку (с именем myscript). Она содержит файл с именем myscript (myscript.exe в Windows) вместе со всеми необходимыми зависимостями.

Приложение можно пересылать, сжав папку в zip-файл.

Режим «One Folder» можно установить с помощью опции -D или --onedir

pyinstaller myscript.py -D

Преимущества:

Одно из основных преимуществ упаковки в папку — легче отлаживать проблемы. Если какие-либо модули не импортируются, их можно проверить в папке.

Если в коде несколько изменений, но используемые зависимости точно совпадают, дистрибуторы могут просто отправить один исполняемый файл (который обычно меньше всей папки).

Недостатки:

Единственный недостаток этого метода — пользователи должны искать исполняемый файл в большом количестве файлов.

Также пользователи могут удалять/изменять другие файлы - это может привести к неправильной работе приложения.

Объединение в один файл

pyinstaller myscript.py -F

Флаг -F или --onefile определяет, что все будет упаковано в единый исполняемый файл myscript.exe.

Одиночный файл будет работать медленнее, чем при упаковке в папку. Также одиночные файлы сложнее отлаживать.

Синтаксис

pyinstaller [options] script [script ...] | specfile

Примечания

PyInstaller собирает python-приложение и все зависимости в один пакет. Пользователь может запускать приложение без установки интерпретатора python или каких-либо модулей. Pyinstaller поддерживает python 2.7 и python 3.3+ и такие библиотеки как: numpy, Django, OpenCv и другие.

Важные моменты, о которых следует помнить:

Pyinstaller поддерживает Python 2.7 и Python 3.3+

Pyinstaller был протестирован на Windows, Linux и Mac OS X.

Pyinstaller НЕ поддерживает кросс компиляцию из одной платформы для всех возможных (т.е. вы не можете создать исполняемый файл для одной операционной системы из другой операционной системы)