Как сделать питон файл exe

Как создать exe файл для Python кода с помощью PyInstaller

Установка PyInstaller

Установка PyInstaller не отличается от установки любой другой библиотеки Python.

Вот так можно проверить версию PyInstaller.

Я использую PyInstaller версии 4.2.

Создание exe файла с помощью PyInstaller

PyInstaller собирает в один пакет Python-приложение и все необходимые ему библиотеки следующим образом:

Возьмем в качестве примера простейший скрипт на Python c названием simple.py, который содержит такой код.

Создадим один исполняемый файл. В командной строке введите:

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Python создает каталог распространения, который содержит основной исполняемый файл, а также все динамические библиотеки.

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Вот что произойдет после запуска файла.

Добавление файлов с данными, которые будут использоваться exe-файлом

Есть CSV-файл netflix_titles.csv, и Python-script, который считывает количество записей в нем. Теперь нужно добавить этот файл в бандл с исполняемым файлом. Файл Python-скрипта назовем просто simple1.py.

Создадим исполняемый файл с данными в папке.

Можно увидеть, что файл теперь добавляется в папку DIST вместе с исполняемым файлом.

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Также, открыв spec-файл, можно увидеть раздел datas, в котором указывается, что файл netflix_titles.csv копируется в текущую директорию.

Добавление файлов с данными и параметр onefile

Скрипт обновлен для чтения папки TEMP и файлов с данными. Создадим exe-файл с помощью onefile и add-data.

После успешного создания файл simple1.exe появится в папке DIST.

Можно скопировать исполняемый файл на рабочий стол и запустить, чтобы убедиться, что нет никакой ошибки, связанной с отсутствием файла.

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Дополнительные импорты с помощью 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-скриптов:

Источник

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Способ 1

Если у вас установлена более высокая версия Python, попробуйте использовать Способ 2 (ниже)

Прежде всего на нужно создать виртуальное окружение для Python3.4. В этом примере мы назовем myenv, Вы можете выбрать любое другое имя, но не забывайте сделать соответствующие изменения.

На терминале наберите следующие команды:

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

Теперь давайте установим py2exe (https://pypi.python.org/pypi/py2exe

HEAD=dobj) в нашем виртуальном окружении:

И, наконец, чтобы создать единый EXE-файл, в нашем виртуальном окружении выполняем команду:

(замените hello.py на имя вашего скрипта. Если скрипт находится в другой папке, то нужно использовать полный путь к вашему сценарию, например, C:\Projects\Python\ hello.py). Это создаст папку DIST, которая содержит исполняемый файл. Для быстрого доступа к нему, наберите в терминале:

Вы увидите путь к папке, где находится EXE-файл.

Примечание: При выполнении, откроется окно и исчезают так же быстро, как и появилось.
Это происходит потому, что операционная система автоматически закрывает терминал, в котором консольная программа закончена.
Для того, чтобы изменить эту ситуацию, можно добавить строчку

в конце файла Python. Интерпретатор будет ждать ввода пользователя, а окно будет оставаться открытым, пока пользователь не нажимает клавишу ввода.

Вы можете подробно изучить использование py2exe в документации на странице модуля: https://pypi.python.org/pypi/py2exe
Выход из виртуального окружения производится командой

Способ 2

Через командную строку Windows устанавливаем pyinstaller:

В командной строке переходим в папку, где находится файл

Затем в командной строке набираем команду

Вместо exapmle.py используем имя файла, из которого нужно создать exe файл.

Через пару минут все готово! Скоркее всего, exe файл будет находится во созданной подпапке dist

Источник

pyqtdeploy, или упаковываем Python-программу в exe’шник… the hard way

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Наверняка, каждый, кто хоть раз писал что-то на Python, задумывался о том, как распространять свою программу (или, пусть даже, простой скрипт) без лишней головной боли: без необходимости устанавливать сам интерпретатор, различные зависимости, кроссплатформенно, чтобы одним файлом-exe’шником (на крайний случай, архивом) и минимально возможного размера.

Для этой цели существует немало инструментов: PyInstaller, cx_Freeze, py2exe, py2app, Nuitka и многие другие… Но что, если вы используете в своей программе PyQt? Несмотря на то, что многие (если не все) из выше перечисленных инструментов умеют упаковывать программы, использующие PyQt, существует другой инструмент от разработчиков самого PyQt под названием pyqtdeploy. К моему несчастью, я не смог найти ни одного вменяемого гайда по симу чуду, ни на русском, ни на английском. На хабре и вовсе, если верить поиску, есть всего одно упоминание, и то — в комментариях (из него я и узнал про эту утилиту). К сожалению, официальная документация написана довольно поверхностно: не указан ряд опций, которые можно использовать во время сборки, для выяснения которых мне пришлось лезть в исходники, не описан ряд тонкостей, с которыми мне пришлось столкнуться.

Данная статья не претендует на всеобъемлющее описание pyqtdeploy и работы с ним, но, в конце концов, всегда приятно иметь все в одном месте, не так ли?

Замечание. В статье исполняемый файл собирается под linux. Несмотря на это, в качестве синонима используется слово «exe’шник» для экономии букв и уменьшения числа повторений.

Тут мне подвернулся pyqtdeploy. «Утилита от самих разработчиков PyQt… Ну уж они-то должны знать, как по-максимуму отвязаться от лишних зависимостей внутри PyQt и Qt?» — подумал я и взялся плотненько за сей агрегат.

Так что же такое pyqtdeploy? В первом приближении, то же самое, что и выше перечисленные программы. Все ваши модули (стандартная библиотека, PyQt, все прочие модули) упаковываются средствами Qt (используется утилита rcc) в так называемый файл ресурсов, генерируется обертка вокруг питоновского интерпретатора на C++, позволяющая получать доступ ко все вашим модулям, и потом все это пакуется/компилируется/… в исполняемый файл. Для работы самого pyqtdeploy нужны Python 3.5+ и PyQt5. Перечислим несколько особенностей (за подробностями сюда и сюда):

Установка pyqtdeploy

Как уже было сказано выше, у нас должен быть установлен Python 3.5+ и PyQt5:

Сборка нашего exe’шника состоит из нескольких этапов:

Структура программы

Возьмем в качестве примера проект со следующей структурой: main.py — «точка входа» для нашей программы, она вызывает mainwindow.py — допустим, отрисовывает окошечко с виджетами и берет из resources иконку icon.png и mainwindow.ui, сгенерированный нами с помощью Qt Designer. Имеющиеся зависимости, версии библиотек и прочие необходимые вещи будут всплывать по ходу повествования:

Обзор плагинов sysroot (документация)

Как уже было сказано ранее, на этом этапе мы собираем все необходимые части, которые затем будут использоваться при генерации исполняемого файла. Данный процесс осуществляется с использованием конфигурационного файла sysroot.json (в принципе, вы можете назвать его как хотите и указать затем путь к нему). Он состоит из блоков, каждый из которых описывает сборку отдельного компонента (Python, Qt и т.д.). В pyqtdeploy реализован API, позволяющий вам написать свой плагин, управляющий сборкой необходимой вам библиотеки/модуля/whatever, если он еще не реализован разработчиками pyqtdeploy. Давайте пробежимся по стандартным плагинам и их параметрам (примеры из документации):

openssl (не обязательный) — позволяет собирать из исходников или использовать установленную в системе библиотеку (подробности). Компонент, описывающий данный плагин в sysroot.json, выглядит следующим образом:

zlib (не обязательный) — используется при сборке других компонентов (если не указан, по идее, будет использоваться тот, что установлен в системе) (подробности):

qt5 (обязательный) — тут понятно (подробности):

python (обязательный) — тут тоже понятно (подробности):

sip (обязательный) — компонент, отвечающий за автоматическое генерирование Python-bindings для C/C++ библиотек (подробности тут и тут):

pyqt5 (обязательный) — тут тоже понятно (подробности):

pyqt3D, pyqtchart, pyqtdatavisualization, pyqtpurchasing, qscintilla (не обязательные) — дополнительные модули, не входящие в состав PyQt. Имеют единственный параметр source — имя архива с исходниками.

Стоит заметить, что некоторые значения параметров могут не работать друг с другом. В таких случаях вы получите ошибку при сборке sysroot с информацией, что не так. Я постарался здесь описать такие случаи, по крайней мере, для обязательных компонентов.

Собираем sysroot

Давайте взглянем на итоговый sysroot.json для нашей программы:

Что интересного мы тут видим? Во-первых, не используется ряд компонентов(например, ssl, pyqt3D и прочие). Во-вторых, собирать наш exe’шник мы будет под linux (а точнее, linux-64; в нашем случае, можно не указывать перед каждым компонентом платформу).

В pyqt5 собираем только модули QtCore, QtGui, QtWidgets.

Прежде чем приступить к сборке sysroot, не забываем скачать все необходимые исходники: zlib, Qt5, Python, sip, PyQt5 и кладем их в папочку с sysroot.json (можно и любую другую, указав потом путь к ней). Запускаем сборку:

Данная команда имеет еще несколько опций, которые можно посмотреть здесь.

Ну и запаситесь попкорном, ибо, в зависимости от мощности вашего калькулятора компьютера, это может занять немалое время.

Создаем «проектный» файл (документация)

Как только у нас все удачно собралось, приступаем к выбору модулей, которые мы хотим запаковать в exe’шник. Для этого в pyqtdeploy есть удобная утилита с GUI. Запускаем (имя .pdy файла может быть любым):

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Application Source. В первой вкладке мы видим следующие настройки:

Еще один момент: любой файл с расширением .py будет «заморожен» (будет сгенерирован байт-код) — в ряде случаев это может быть нежелательным.

qmake. Так как в сборке участвует qmake, здесь можно добавить дополнительные параметры для него (я не использовал);

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

PyQt Modules. На этой вкладке выделяем все PyQt-модули, которые мы явно импортируем в нашей программе. Если они зависят от других модулей, те выделятся автоматически. В нашем случае использовались QtCore, QtGui, QtWidgets, uic; sip подхватился автоматом.
Если планируется использовать уже установленный PyQt, а не привязывать статически его к нашему исполняемому файлу, ничего не выделяем (такой сценарий не тестировался).

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Standard Library. Здесь тот же подход, что и в предыдущем пункте, только для стандартной библиотеки. Если у вас в программе явно импортируется какой-то модуль, ставим галку. Если выделенным нами модулям (или самому интерпретатору) нужны другие модули, они выделятся автоматом (квадратики).

Python использует ряд модулей/пакетов (например, ssl), которым для работы нужны внешние библиотеки. Если мы хотим их статически привязать, то мы настраиваем это дело справа. В INCLUDEPATH указываем путь к заголовочным файлам (headers), в LIBS — путь к этой либе (мной не использовались, так что подробности смотрим в доках).

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Other Packages. На этой вкладке выбираем необходимые нам сторонние пакеты (например, установленные из pypi). Подход тот же, что и в Application source: кликаем дважды на пустой строке, выбираем папку (в нашем случае, site-packages используемого при разработке virtual environment), жмем Scan и выбираем нужные пакеты/модули (у нас это PIL).

Other Extension Modules. Тут мы настраиваем модули расширения на C, которые хотим СТАТИЧЕСКИ привязать к exe’шнику (сторонние; те, что в стандартной библиотеке, привязываются сами).

С компиляцией я не разбирался, но советую почитать, во-первых, про эту вкладку в доках, во-вторых, про qmake (там гораздо подробнее описаны опции, чем в pyqt’шных доках).

Locations. Тут тоже подробно не останавливаемся, за описанием отдельных путей сюда. Если вы действовали в соответствии с этой статьей (собранный sysroot лежит тут же, рядом с main.pdy), тут менять ничего не надо.

Собираем exe’шник (документация)

Наконец-таки собираем наш исполняемый файл:

Гипотетически, все должно собраться, на деле — доки и гугл вам в помощь.

Лирическое отступление #1 — меняем поведение программы в зависимости от того, «заморожено» оно или нет

Если вам нужно определить, запущена ваша программа как есть или из собранного exe’шника, используется тот же подход, что и в PyInstaller:

Лирическое отступление #2 — использование ресурсов (изображения, иконки и пр.)

У Qt имеется специальная «система ресурсов», которая позволяет с помощью утилиты rcc упаковать любые бинарные файлы в exe’шник. Далее с помощью пути специального формата вы можете получить доступ к необходимому ресурсу. В нашем проекте файл с иконкой icon.png расположен в src/resources/images, тогда путь в «системе ресурсов» будет выглядеть так — :/src/resources/images/icon.png. Как видите, ничего хитрого. Однако с таким путем есть одна засада — его понимают только Qt’шные функции. Т.е. если вы напишите у себя в программе что-нибудь в духе:

Все будет в порядке. Но если, например, так:

Ничего не выйдет, ибо open будет пытаться найти такой путь в вашей файловой системе и, естественно, ничего не найдет.

Если вам нужно читать запакованные ресурсы не только средствами Qt (например, вы, как и я, создавали GUI с помощью Qt Designer и получили файл .ui, который потом надо прочитать с помощью loadUi ), нужно будет сделать как-то так:

Итоги

Стоит ли так сильно заморачиваться, если вам нужен exe’шник, и старые добрые дедовские способы распространения программы вам по каким-то причинам не подходят? Если вы не используете PyQt, то, на мой взгляд, точно не стоит. Используйте что-нибудь более дружелюбное (тот же PyInstaller). Если хотите выжать максимум соков из вашего файла — дерзайте. В конечном счете мне таки удалось уменьшить размер файла до

35 МБ), что все-равно больше, чем хотелось бы.

Когда у нас собрана минимально необходимая Qt и PyQt, было бы неплохо попробовать сделать на их основе exe’шник с помощью PyInstaller или cx_Freeze и посмотреть на размер, но это, как говорится, уже другая история.

Источник

Как из py сделать exe

Если вы только начали изучать Python то следующие статьи будут Вам очень полезны.

Компилируем код Python в файл exe

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Кстати если после ввода вы видите следующие сообщение ««PIP» не является внутренней или внешней командой, исполняемой программой или пакетным файлом» то читаем статью ссылку на которую я оставил выше.

Если же установка прошла без ошибок, тогда нужно перейти в директорию где у вас храниться файл скрипт командой

Для компиляции вводим следующею команду

test.py — ваш скрипт

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

После завершения компиляции в папке где лежал ранее лежа ваш скрипт py появиться еще одна «Dist» в ней папка «test» в которой будет ваша программа. Теперь вашу программу можно будет запустить на любом другом компьютере.

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Но как мы видим у нас получился не один файл и несколько. Что бы сделать из py всего один файл exe, нужно ввести туже команду но только добавить специальный флаг.

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

После завершения в папке «dist» появиться только один файл exe.

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Как видите скомпилировать скрипт и сделать из py exe достаточно просто, но есть несколько нюансов.

Если у вас код достаточно большой то готовьтесь к тому что и файл exe будет внушительных размеров, для примера могу сказать что код из 60 строк будет весить 110-120 Mb.

Так же если код скомпилирован в 64 битной ОС то в 32 битной он не пустится. Если код скомпилирован в 32 битной то он будет работать и 64 битной.

Источник

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Установка Auto PY to EXE

Установка через pip

При помощи следующей команды можно установить текущую версию Auto PY to EXE.

Установка с GitHub

Также можно выполнить установку напрямую с GitHub. Для установки Auto PY to EXE с GitHub необходимо сначала клонировать репозиторий GitHub.

Можно также проверить версию при помощи следующей команды:

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Текущая версия Auto PY to EXE 2.9.0 и теперь она установлена на ваш компьютер.

Открываем приложение

Чтобы открыть Auto PY to EXE, нужно выполнить в терминале следующую команду:

Откроется удобное приложение с GUI:

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Интерфейс пользователя Auto PY to EXE

Процесс преобразования

Шаг 1. Добавляем местоположение файла

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Добавляем местоположение файла

Я добавил местоположение основного файла Python моего проекта. Здесь я использую для примера один из своих проектов на Python. Это приложение с GUI, визуализирующее различные алгоритмы сортировки. О создании этого проекта можно прочитать здесь: Build a Sorting Algorithm Visualizer in Python

Шаг 2. Выбор «One Directory» или «One File»

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

One directory или One file

Шаг 3. Выбор «Console Based» или «Window Based»

После этого нужно будет выбрать тип приложения: консольное (Console Based) или оконное (Window Based). Если выбрать «Window Based», то это скроет весь консольный вывод приложения. Если ваш проект генерирует консольный вывод, то нужно выбрать «Console Based». Если у вас приложение с GUI или вам не нужно отображать пользователю консольный вывод, то выберите «Window Based». Я выбрал второй вариант, потому что моё приложение имеет GUI.

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Console Based или Window Based

Шаг 4. Преобразование

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Нажмите кнопку для преобразования

Для завершения процесса придётся немного подождать.

Папка с результатами

После завершения процесса можно будет выбрать опцию открытия папки с результатами.

Как сделать питон файл exe. Смотреть фото Как сделать питон файл exe. Смотреть картинку Как сделать питон файл exe. Картинка про Как сделать питон файл exe. Фото Как сделать питон файл exe

Готово! Наш проект на Python теперь преобразован в исполняемый файл. Его можно запускать на других компьютерах без необходимости установки Python.

Ресурсы

На правах рекламы

Серверы для всех, в том числе, и для разработчиков! VDS с посуточной оплатой на базе новейших процессоров AMD EPYC и хранилища на основе NVMe дисков от Intel для размещения проектов любой сложности, создавайте собственную конфигурацию сервера в пару кликов!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *