Интересный Python #11: упаковываем скрипты в .exe
Код программы, написанной на Python, хранится в файлах с расширением .py. Программист легко запустит такую программу с помощью интерпретатора.
Но как быть с не-программистами, которые привыкли запускать программы двойным кликом по значку и не готовы возиться с установкой интерпретатора ради запуска вашего скрипта? Как поделиться программой с друзьями или коллегами?
PyInstaller
С помощью библиотеки PyInstaller можно запаковать код на Python в исполняемый файл в расширением .exe. В этом файле будет содержаться всё необходимое для выполнения программы, включая интерпретатор и необходимые зависимости (внешние библиотеки).
Как установить PyInstaller
1. Откройте терминал (командную строку);
2. Если умеете пользоваться виртуальным окружением, то создайте и активируйте его. Если нет, то пропустите этот шаг;
3. Выполните команду pip install pyinstaller.
Документация
Документация понятная и актуальная. Ознакомиться с ней можно здесь.
Дальше в посте будет много скриншотов и примеров кода. Прочитать материал в более удобном и структурированном формате можно здесь.
Откройте командную строку и с помощью команды cd перейдите в каталог, в котором лежит ваш код (файл с расширением .py).
Выполните следующую команду: pyinstaller [filename]. filename - это имя модуля, то есть файла с кодом, например, main.py. Вы увидите, как pyinstaller начал свою работу.
В итоге будет создан файл с расширением .spec и 2 директории: build и dist. Перейдите в директорию dist. В ней вы увидите следующие файлы:
Запустите файл с расширением .exe (в примере выше это main.exe). Это и есть ваша программа в виде двоичного файла.
--onefile
Сейчас для того, чтобы поделиться программой с другими людьми, вам понадобится передать им всё содержимое каталога dist. Но если вы хотите, чтобы всё было упаковано в единый файл, то можно указать опцию --onefile: pyinstaller --onefile [filename].
Подключение дополнительных файлов
Иногда требуется добавить в дистрибутив не только саму программу, но и дополнительные файлы: данные, изображения и прочее. О том, как это сделать, можно прочитать здесь.
Возможно, вы также захотите прикрутить к своей программе полноценный установщик, вроде такого:
Для этого можно воспользоваться инструментами InstallForge или InnoSetup.
Программирование на python
879 постов11.9K подписчика
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
Приветствуется:
• уважение к читателям и авторам
• конструктивность комментариев
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
• нарушать правила Пикабу