Установка и настройка
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 НЕ поддерживает кросс компиляцию из одной платформы для всех возможных (т.е. вы не можете создать исполняемый файл для одной операционной системы из другой операционной системы)