Обычно для запуска Python-скрипта нужно установить Python, потом все библиотеки, потом проверить зависимости и только потом можно запускать. Сегодня научимся собирать всё это в один файл — его можно будет запустить на любом компьютере, даже если там нет Python.
🤔 Что делаем: превращаем Python-скрипт в исполняемый файл, который можно потом будет запустить на любом компьютере.
🕔 Время: 5 минут.
✅ Понадобится: библиотека pyInstaller.
👉 Коротко суть. С помощью библиотеки pyInstaller можно собрать все файлы, модули и зависимости в одном месте, привязать к ним интерпретатор Python, а потом обернуть это в один файл. Это значит, что мы получаем как бы виртуальный контейнер, в котором уже есть всё, что нужно для запуска скрипта, — без установки на свой компьютер.
Как установить Python на компьютер и начать на нём писать
Ставим pyInstaller
В командной строке или в терминале VS Code пишем команду. Командную строку после этого не закрываем — она нам ещё пригодится:
pip install pyinstaller
Переходим в папку со скриптом
Чтобы было проще собирать скрипт в один файл, нам нужно перейти в ту папку, где лежит наш исходный скрипт. Для этого в той же командной строке используем команду cd, после которой пишем полный путь к папке. Например, если скрипт лежит в папке Downloads, то команда будет выглядеть так:
cd /Users/mihailpolanin/Downloads
Если всё прошло штатно, мы увидим название папки в конце приветствия командной строки:
Как работает скрипт, собранный в один файл
Есть два варианта работы библиотеки: собрать всё в одну папку или упаковать всё в один файл. Но на самом деле это всё примерно одно и то же, потому что итоговый файл работает так:
- Создаёт виртуальную папку.
- Распаковывает из себя все библиотеки, служебные файлы и исполняемый файл Python.
- На основе этого создаёт виртуальную среду и подключает все нужные библиотеки.
- Запускает Python и уже в нём выполняет наш скрипт.
Получается, что на самом деле мы просто создаём оболочку для скрипта, а внутри всё работает точно так же, как если бы мы запускали этот скрипт по старинке.
Превращаем скрипт в исполняемый файл
Единственный параметр, который нам нужно указать при запуске — то, что результат нужен в виде единого файла. Для этого используется параметр --onefile
— если его не будет, то библиотека сделает нам одну папку вместо одного файла.
Проверим работу упаковщика на примере скрипта из статьи про графический интерфейс в Python. Для этого нужно написать pyinstaller и через пробел — имя скрипта. Если скрипт называется gui.py, то команда будет выглядеть так:
pyinstaller --onefile gui.py
После запуска в папке со скриптом появятся две новых папки — build и dist. Первая нам не нужна, поэтому заходим в dist — там и лежит наш готовый файл. Если это делать в Windows, там будет лежать файл для Windows. Если делать на Mac OS, получится приложение для Mac OS.
Проверяем работу
Запускаем файл — просто дважды щёлкаем на нём мышкой и смотрим, что произойдёт.
После запуска открывается терминал, где видны служебные сообщения от программы графического интерфейса. Через несколько секунд (когда подключатся все библиотеки) мы видим новое окошко с графическим интерфейсом — значит, мы всё сделали правильно и этот файл можно запускать независимо от того, есть Python на компьютере или нет.
Если почитать документацию, можно тонко настроить работу сборщика — например, чтобы не было консоли.