Превращаем Python-скрипт в исполняемый файл
Обычно для запуска Python-скрипта нужно установить Python, потом все библиотеки, потом проверить зависимости и только потом можно запускать. Сегодня научимся собирать всё это в один файл — его можно будет запустить на любом компьютере, даже если там нет Python.
🤔 Что делаем: превращаем Python-скрипт в исполняемый файл, который можно потом будет запустить на любом компьютере.
🕔 Время: 5 минут.
✅ Понадобится: библиотека pyInstaller.
👉 Коротко суть. С помощью библиотеки pyInstaller можно собрать все файлы, модули и зависимости в одном месте, привязать к ним интерпретатор Python, а потом обернуть это в один файл. Это значит, что мы получаем как бы виртуальный контейнер, в котором уже есть всё, что нужно для запуска скрипта, — без установки на свой компьютер.
Ставим pyInstaller
В командной строке или в терминале VS Code пишем команду. Командную строку после этого не закрываем — она нам ещё пригодится:
Переходим в папку со скриптом
Чтобы было проще собирать скрипт в один файл, нам нужно перейти в ту папку, где лежит наш исходный скрипт. Для этого в той же командной строке используем команду cd, после которой пишем полный путь к папке. Например, если скрипт лежит в папке Downloads, то команда будет выглядеть так:
Если всё прошло штатно, мы увидим название папки в конце приветствия командной строки:
Как работает скрипт, собранный в один файл
Есть два варианта работы библиотеки: собрать всё в одну папку или упаковать всё в один файл. Но на самом деле это всё примерно одно и то же, потому что итоговый файл работает так:
- Создаёт виртуальную папку.
- Распаковывает из себя все библиотеки, служебные файлы и исполняемый файл Python.
- На основе этого создаёт виртуальную среду и подключает все нужные библиотеки
- Запускает Python и уже в нём выполняет наш скрипт.
Получается, что на самом деле мы просто создаём оболочку для скрипта, а внутри всё работает точно так же, как если бы мы запускали этот скрипт по старинке.
Превращаем скрипт в исполняемый файл
Единственный параметр, который нам нужно указать при запуске — то, что результат нужен в виде единого файла. Для этого используется параметр —onefile — если его не будет, то библиотека сделает нам одну папку вместо одного файла.
Проверим работу упаковщика на примере скрипта из статьи про графический интерфейс в Python. Для этого нужно написать pyinstaller и через пробел — имя скрипта. Если скрипт называется gui.py, то команда будет выглядеть так:
pyinstaller —onefile gui.py
После запуска в папке со скриптом появятся две новых папки — build и dist. Первая нам не нужна, поэтому заходим в dist — там и лежит наш готовый файл. Если это делать в Windows, там будет лежать файл для Windows. Если делать на Mac OS, получится приложение для Mac OS.
Проверяем работу
Запускаем файл — просто дважды щёлкаем на нём мышкой и смотрим, что произойдёт.
После запуска открывается терминал, где видны служебные сообщения от программы графического интерфейса. Через несколько секунд (когда подключатся все библиотеки) мы видим новое окошко с графическим интерфейсом — значит, мы всё сделали правильно и этот файл можно запускать независимо от того, есть Python на компьютере или нет.
Если почитать документацию, можно тонко настроить работу сборщика — например, чтобы не было консоли.
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Функция получила не тот аргумент, который она ожидала
Это значит, что используется несуществующий ключ словаря
На это можно смотреть бесконечно.
Невероятные… Фантастические… Ни капельки не бесящие.
Чтобы программа не падала из-за разных ошибок
Как сделать из Python-скрипта исполняемый файл
Вы изучаете данные и хотите поделиться своим кодом Python с другими, не раскрывая исходный код и не требуя от них установки Python и других компонентов? Если да, то вам может быть интересна конвертация вашего скрипта Python в исполняемый файл.
Исполняемый файл — это файл, который может быть установлен или запущен на компьютере без использования дополнительного программного обеспечения или библиотек. Он имеет расширение .exe и обычно используется для программных приложений в Windows. Конвертируя свой сценарий Python в исполняемый файл, вы можете защитить свой код от изменения или кражи, облегчить другим людям использование вашей программы и сделать автоматическим выполнение задач.
В этой статье я покажу вам два простых метода конвертации файла Python в исполняемый файл с помощью PyInstaller и auto-py-to-exe. Это две популярные библиотеки Python, которые позволяют создавать автономные исполняемые файлы из скриптов Python. Для работы вам понадобится Python 3.6 или выше.
Способ 1: С помощью библиотеки PyInstaller:
PyInstaller — это библиотека Python, которая может анализировать ваш код и компоновать его с необходимыми модулями и библиотеками в один исполняемый файл. Она поддерживает множество платформ, включая Windows, Linux и Mac OS X. PyInstaller также может обрабатывать сложные случаи, такие как импорт файлов данных, скрытый импорт, приложения с графическим интерфейсом и т.д.
Чтобы использовать PyInstaller, вам нужно сначала установить его с помощью pip:
Затем вам нужно написать свой скрипт Python и сохранить его с расширением .py. В этом примере я буду использовать простой сценарий, который печатает «Hello World» и сохраняет его под именем hello.py:
Далее необходимо открыть командную строку и перейти в каталог, где находится ваш скрипт. Затем необходимо выполнить следующую команду:
В результате вы создадите папку dist, содержащая исполняемый файл hello.exe. Вы можете дважды щелкнуть на этом файле, чтобы запустить его или поделиться им с другими.
Если вы хотите создать однофайловый исполняемый файл, не требующий дополнительных файлов или папок, вы можете использовать ключ —onefile:
pyinstaller --onefile hello.py
В папке dist будет создан один файл hello.exe, содержащий все необходимые коды и ресурсы.
Если вы хотите скрыть окно консоли при запуске исполняемого файла, вы можете использовать опцию —noconsole:
pyinstaller --noconsole --onefile hello.py
Будет создан исполняемый файл, работающий в фоновом режиме.
Вы также можете настроить другие аспекты исполняемого файла, такие как иконка, имя, версия и т.д., используя различные опции или создав файл спецификации. За более подробной информацией вы можете обратиться к документации PyInstaller.
Способ 2: С помощью auto-py-to-exe:
auto-py-to-exe — это еще одна библиотека Python, которая может конвертировать скрипты Python в исполняемые файлы. Она основана на PyInstaller, но имеет графический интерфейс для пользователя (GUI), что делает ее более простой в работе. Вы можете просто выбрать свой скрипт, подобрать параметры и нажать кнопку, чтобы сгенерировать исполняемый файл.
Чтобы использовать auto-py-to-exe, вам нужно сначала установить его с помощью pip:
Затем необходимо выполнить следующую команду для запуска графического интерфейса пользователя:
Откроется окно, которое выглядит следующим образом:
Здесь вы можете выбрать свой скрипт, нажав на кнопку Browse рядом с Script Location. Вы также можете выбрать, хотите ли вы получить исполняемый файл в одном файле или в одной папке, выбрав One File или One Directory в разделе Output Options.
Вы также можете изменить другие настройки, такие как иконка, имя, окно консоли и т.д., перейдя на вкладку Advanced и изменив поля Additional Files или Window Based Options.
После того как вы закончите с настройками, нажмите на кнопку Convert .py to .exe в нижней части окна. Это запустит процесс преобразования и покажет результат на вкладке Консоль.
После завершения преобразования вы сможете найти исполняемый файл в папке вывода, указанной в разделе Output Options. Вы можете запустить его или поделиться им с другими пользователями.
28 августа начнется новый поток по языку программирования Python. На нем мы разберем: Библиотеки Python и решение конкретных задач DevOps; Правила эффективного и поддерживаемого кода; Принципы автоматизации: Docker, Gitlab, Prometheus, K8S и многое другое.
Как превратить скрипт.py в программу.exe
Как только первая полноценная программа выходит из-под клавиатуры, ей хочется похвастать, не так ли? Но потенциальные пользователи вряд ли захотят устанавливать себе IDE и все зависимости — это долго и муторно. Чтобы упростить им задачу и показать программу большему числу людей, создатели языка продумали, как сделать из кода исполняемую операционкой программу. Превращение в файла .py в .exe обычно делается с помощью PyInstaller, py2exe или cx_Freeze. Посмотрим, как работает PyInstaller:
Установка
Вы можете сделать это с помощью pip. Откройте командную строку и введите:
Я использую простейший скрипт, который экспортирует константный датафрейм в файл.csv:
df = pd.DataFrame(data, columns=[‘Numbers’])
То есть я ожидаю, что после запуска exe-программы увижу той же папке csv-файл.
До сих пор бывает, что библиотека ставится без «проваливания» в выделенную виртуальную среду и потом не запускается. Так что для порядка на вашем ПК рекомендую проводить такой эксперимент после запуска следующих команд:
python3 -m venv sample_env
Впрочем, в этот раз обошлось без проблем и PyInstaller заработал.
Преобразование
Перейдите в каталог со скриптом Python, который хотите преобразовать в .exe. Используйте команду cd для перехода в нужную директорию. Например:
Уже в директории, вы можете запустить PyInstaller и преобразовать скрипт Python в .exe. Если скрипт называется my_script.py , введите:
python3 -m PyInstaller my_script.py
Это создаст .exe-файл в поддиректории dist . Чтобы программа стала одним .exe-файлом, добавьте флаг —onefile :
python3 -m PyInstaller —onefile my_script.py
Вывод у процесса получился избыточный, так что если вы не хотите видеть консоль при выполнении программы, добавьте флаг —noconsole :
pyinstaller —onefile —noconsole my_script.py
В результате рядом с py-скриптом ляжет директория, где в подпапке build будет лежать искомый исполняемый файл Unix (.exe):
Я работаю на macOS, однако всё равно могу запустить такой файл с помощью Терминала. Двойным щелчком запускаем my_script и получаем уведомление об исполнении программы:
Поскольку конечный путь не был указан, то выходной csv-файл просто лёг в стартовую директорию системы:
Обратите внимание, что при использовании PyInstaller все зависимости Python-скрипта должны быть установлены на вашем компьютере. И все используемые модули Python должны быть совместимы с PyInstaller.
Такой маленький шаг — прекрасный способ добавить себе уверенности как разработчику. Если вы все еще испытываете трудности с основами языка, попробуйте курс Result School по основам программирования. С промокодом TPROGER60 вы получите скидку 60%.
Если вы пробовали PyInstaller или аналоги, то какую программу экспортировали? Расскажите свою историю в комментариях.