как код python сохранить в exe
Python — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода.
Хочется отметить, что для меня Python является одним из самых интересных, мощных языков программирования. С ним я познакомился примерно в 2016 году и только спустя год осознал всю его мощь и красоту.
pip – система управления пакетами, которая используется для установки и управления программными пакетами, которые написаны на Python. Если кратко, то pip – это файловый менеджер языка Python.
pyinstaller – программа, которая собирает все зависимости и python-приложение в один пакет и превращает его в исполняемый файл для Windows, Linux, MacOS.
Для начала, нам нужно установить pyinstaller с помощью pip. Пишем команду в командной строке:
Если вы используете Linux и у вас не установлен pip, то просто напишите команду:
На Windows, если вы не изменяли конфигурации установки Python, проблемы отсутствия pip у вас возникнуть не должно.
Вторым шагом будет переход в директорию с нашим проектом. Просто копируем путь и с помощью команды cd (наш путь) переходим в директорию, для Linux и Windows команда одинаковая.
Сделаем мы это с помощью установленного пакета pyinstaller.
Давайте разберем каждый флаг, они не обязательно все вам понадобятся.
Так же подписывайтесь на обновления сайта, тут будет ещё много интересного!
Установка Auto PY to EXE
Установка через pip
При помощи следующей команды можно установить текущую версию Auto PY to EXE.
Установка с GitHub
Также можно выполнить установку напрямую с GitHub. Для установки Auto PY to EXE с GitHub необходимо сначала клонировать репозиторий GitHub.
Можно также проверить версию при помощи следующей команды:
Текущая версия Auto PY to EXE 2.9.0 и теперь она установлена на ваш компьютер.
Открываем приложение
Чтобы открыть Auto PY to EXE, нужно выполнить в терминале следующую команду:
Откроется удобное приложение с GUI:
Интерфейс пользователя Auto PY to EXE
Процесс преобразования
Шаг 1. Добавляем местоположение файла
Добавляем местоположение файла
Я добавил местоположение основного файла Python моего проекта. Здесь я использую для примера один из своих проектов на Python. Это приложение с GUI, визуализирующее различные алгоритмы сортировки. О создании этого проекта можно прочитать здесь: Build a Sorting Algorithm Visualizer in Python
Шаг 2. Выбор «One Directory» или «One File»
One directory или One file
Шаг 3. Выбор «Console Based» или «Window Based»
После этого нужно будет выбрать тип приложения: консольное (Console Based) или оконное (Window Based). Если выбрать «Window Based», то это скроет весь консольный вывод приложения. Если ваш проект генерирует консольный вывод, то нужно выбрать «Console Based». Если у вас приложение с GUI или вам не нужно отображать пользователю консольный вывод, то выберите «Window Based». Я выбрал второй вариант, потому что моё приложение имеет GUI.
Console Based или Window Based
Шаг 4. Преобразование
Нажмите кнопку для преобразования
Для завершения процесса придётся немного подождать.
Папка с результатами
После завершения процесса можно будет выбрать опцию открытия папки с результатами.
Готово! Наш проект на Python теперь преобразован в исполняемый файл. Его можно запускать на других компьютерах без необходимости установки Python.
Ресурсы
На правах рекламы
Серверы для всех, в том числе, и для разработчиков! VDS с посуточной оплатой на базе новейших процессоров AMD EPYC и хранилища на основе NVMe дисков от Intel для размещения проектов любой сложности, создавайте собственную конфигурацию сервера в пару кликов!
Как создать exe файл для Python кода с помощью PyInstaller
Установка PyInstaller
Установка PyInstaller не отличается от установки любой другой библиотеки Python.
Вот так можно проверить версию PyInstaller.
Я использую PyInstaller версии 4.2.
Создание exe файла с помощью PyInstaller
PyInstaller собирает в один пакет Python-приложение и все необходимые ему библиотеки следующим образом:
Возьмем в качестве примера простейший скрипт на Python c названием simple.py, который содержит такой код.
Создадим один исполняемый файл. В командной строке введите:
Python создает каталог распространения, который содержит основной исполняемый файл, а также все динамические библиотеки.
Вот что произойдет после запуска файла.
Добавление файлов с данными, которые будут использоваться exe-файлом
Есть CSV-файл netflix_titles.csv, и Python-script, который считывает количество записей в нем. Теперь нужно добавить этот файл в бандл с исполняемым файлом. Файл Python-скрипта назовем просто simple1.py.
Создадим исполняемый файл с данными в папке.
Можно увидеть, что файл теперь добавляется в папку DIST вместе с исполняемым файлом.
Также, открыв spec-файл, можно увидеть раздел datas, в котором указывается, что файл netflix_titles.csv копируется в текущую директорию.
Добавление файлов с данными и параметр onefile
Скрипт обновлен для чтения папки TEMP и файлов с данными. Создадим exe-файл с помощью onefile и add-data.
После успешного создания файл simple1.exe появится в папке DIST.
Можно скопировать исполняемый файл на рабочий стол и запустить, чтобы убедиться, что нет никакой ошибки, связанной с отсутствием файла.
Дополнительные импорты с помощью Hidden Imports
Исполняемому файлу требуются все импорты, которые нужны Python-скрипту. Иногда PyInstaller может пропустить динамические импорты или импорты второго уровня, возвращая ошибку ImportError: No module named …
Для решения этой ошибки нужно передать название недостающей библиотеки в hidden-import.
Например, чтобы добавить библиотеку os, нужно написать вот так:
Файл spec
Файл spec — это первый файл, который PyInstaller создает, чтобы закодировать содержимое скрипта Python вместе с параметрами, переданными при запуске.
PyInstaller считывает содержимое файла для создания исполняемого файла, определяя все, что может понадобиться для него.
Если у вас есть какое-либо из нижеперечисленных требований, то вы можете изменить файл спецификации:
Например, есть скрипт simpleModel.py, который использует TensorFlow и выводит номер версии этой библиотеки.
Компилируем модель с помощью PyInstaller:
После успешной компиляции запускаем исполняемый файл, который возвращает следующую ошибку.
Исправим ее, обновив файл spec. Одно из решений — создать файл spec.
Команда pyi-makespec создает spec-файл по умолчанию, содержащий все параметры, которые можно указать в командной строке. Файл simpleModel.spec создается в текущей директории.
Если использовать параметр по умолчанию или onedir, то вместе с exe-разделом будет также и раздел collect.
Можно открыть simpleModel.spec и добавить следующий текст для создания хуков.
Создаем хуки и добавляем их в hidden imports и раздел данных.
Файлы хуков расширяют возможность PyInstaller обрабатывать такие требования, как необходимость включать дополнительные данные или импортировать динамические библиотеки.
Обычно пакеты Python используют нормальные методы для импорта своих зависимостей, но в отдельных случаях, как например TensorFlow, существует необходимость импорта динамических библиотек. PyInstaller не может найти все библиотеки, или же их может быть слишком много. В таком случае рекомендуется использовать вспомогательный инструмент для импорта из PyInstaller.utils.hooks и собрать все подмодули для библиотеки.
Скомпилируем модель после обновления файла simpleModel.spec.
Скопируем исполняемый файл на рабочий стол и увидим, что теперь он корректно отображает версию TensorFlow.
Вывод:
PyInstaller предлагает несколько вариантов создания простых и сложных исполняемых файлов из Python-скриптов:
Компиляция программы на python 3 в exe с помощью программы cx_Freeze
Наверняка, у каждого Python-программиста возникало непреодолимое желание, а изредка и реальная потребность, скомпилировать свою программу на python в exe файл. Сегодня я расскажу, как это сделать с помощью программы cx_Freeze.
Вопрос 1: а оно надо?
Прежде, чем начинать компилировать программу, нужно убедиться, что это действительно необходимо.
Поэтому, если вы будете использовать программу сами или на компьютерах тех, кто её будет использовать, будет стоять интерпретатор python, то вам не нужно её компилировать.
Установка cx_Freeze
Если компилировать программу на python всё-таки нужно, то скачиваем cx_Freeze с http://www.lfd.uci.edu/
gohlke/pythonlibs/#cx_freeze (так как в ней нет одного неприятного бага, который есть в официальной версии).
Затем устанавливаем, не забывая правильно выбрать директорию, где расположен python.
Компиляция
Компилировать будем программу «блэкджек» (файл 21.py) (кому лень смотреть, привожу полный исходный код).
Создаём в папке с программой файл setup.py с содержимым:
Переходим в командную строку (обычно Пуск → Стандартные → Командная строка). Переходим в папку с программой (в моём случае D:\Dima\py). Запускаем команду C:\Python34\python.exe setup.py build (вместо C:\Python34 нужно написать папку, куда установлен python).
Начнется процесс сборки, в котором cx_Freeze может выдавать предупреждения, но, скорее всего, они не повлияют на работу программы.
Поздравляю! В папке build теперь есть ваша папка с исполняемым файлом!
Заметьте, не файл, а папка! Все остальные файлы также нужны для работы программы (да, это недостаток cx_Freeze). К тому же, при завершении программы окно сразу закрывается (а не ждет нажатия клавиши), поэтому в конец программы нужно дописать что-то вроде:
И скомпилировать ещё раз.
Также можно создать msi-архив командой C:\Python34\python.exe setup.py bdist_msi.
Разумеется, при компиляции более сложных программ вы можете столкнуться с более сложными проблемами.
Для их решения следует воспользоваться официальной документацией.
Как из py сделать exe
Если вы только начали изучать Python то следующие статьи будут Вам очень полезны.
Компилируем код Python в файл exe
Кстати если после ввода вы видите следующие сообщение ««PIP» не является внутренней или внешней командой, исполняемой программой или пакетным файлом» то читаем статью ссылку на которую я оставил выше.
Если же установка прошла без ошибок, тогда нужно перейти в директорию где у вас храниться файл скрипт командой
Для компиляции вводим следующею команду
test.py — ваш скрипт
После завершения компиляции в папке где лежал ранее лежа ваш скрипт py появиться еще одна «Dist» в ней папка «test» в которой будет ваша программа. Теперь вашу программу можно будет запустить на любом другом компьютере.
Но как мы видим у нас получился не один файл и несколько. Что бы сделать из py всего один файл exe, нужно ввести туже команду но только добавить специальный флаг.
После завершения в папке «dist» появиться только один файл exe.
Как видите скомпилировать скрипт и сделать из py exe достаточно просто, но есть несколько нюансов.
Если у вас код достаточно большой то готовьтесь к тому что и файл exe будет внушительных размеров, для примера могу сказать что код из 60 строк будет весить 110-120 Mb.
Так же если код скомпилирован в 64 битной ОС то в 32 битной он не пустится. Если код скомпилирован в 32 битной то он будет работать и 64 битной.