158

Интересный Python #11: упаковываем скрипты в .exe

Код программы, написанной на Python, хранится в файлах с расширением .py. Программист легко запустит такую программу с помощью интерпретатора.


Но как быть с не-программистами, которые привыкли запускать программы двойным кликом по значку и не готовы возиться с установкой интерпретатора ради запуска вашего скрипта? Как поделиться программой с друзьями или коллегами?

Интересный Python #11: упаковываем скрипты в .exe Программирование, Python, IT, Обучение, Длиннопост

PyInstaller

С помощью библиотеки PyInstaller можно запаковать код на Python в исполняемый файл в расширением .exe. В этом файле будет содержаться всё необходимое для выполнения программы, включая интерпретатор и необходимые зависимости (внешние библиотеки).


Как установить PyInstaller

1. Откройте терминал (командную строку);

2. Если умеете пользоваться виртуальным окружением, то создайте и активируйте его. Если нет, то пропустите этот шаг;

3. Выполните команду pip install pyinstaller.


Документация

Документация понятная и актуальная. Ознакомиться с ней можно здесь.

Интересный Python #11: упаковываем скрипты в .exe Программирование, Python, IT, Обучение, Длиннопост
Интересный Python #11: упаковываем скрипты в .exe Программирование, Python, IT, Обучение, Длиннопост
Дальше в посте будет много скриншотов и примеров кода. Прочитать материал в более удобном и структурированном формате можно здесь.

Откройте командную строку и с помощью команды cd перейдите в каталог, в котором лежит ваш код (файл с расширением .py).

Интересный Python #11: упаковываем скрипты в .exe Программирование, Python, IT, Обучение, Длиннопост

Выполните следующую команду: pyinstaller [filename].  filename - это имя модуля, то есть файла с кодом, например, main.py. Вы увидите, как pyinstaller начал свою работу.

Интересный Python #11: упаковываем скрипты в .exe Программирование, Python, IT, Обучение, Длиннопост

В итоге будет создан файл с расширением .spec и 2 директории: build и dist. Перейдите в директорию dist. В ней вы увидите следующие файлы:

Интересный Python #11: упаковываем скрипты в .exe Программирование, Python, IT, Обучение, Длиннопост

Запустите файл с расширением .exe (в примере выше это main.exe). Это и есть ваша программа в виде двоичного файла.

--onefile

Сейчас для того, чтобы поделиться программой с другими людьми, вам понадобится передать им всё содержимое каталога dist. Но если вы хотите, чтобы всё было упаковано в единый файл, то можно указать опцию --onefile: pyinstaller --onefile [filename].


Подключение дополнительных файлов

Иногда требуется добавить в дистрибутив не только саму программу, но и дополнительные файлы: данные, изображения и прочее. О том, как это сделать, можно прочитать здесь.

Интересный Python #11: упаковываем скрипты в .exe Программирование, Python, IT, Обучение, Длиннопост
Интересный Python #11: упаковываем скрипты в .exe Программирование, Python, IT, Обучение, Длиннопост

Возможно, вы также захотите прикрутить к своей программе полноценный установщик, вроде такого:

Интересный Python #11: упаковываем скрипты в .exe Программирование, Python, IT, Обучение, Длиннопост

Для этого можно воспользоваться инструментами InstallForge или InnoSetup.

Программирование на python

879 постов11.9K подписчика

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу