Как запаковать программу в exe python

Все мы знаем, что пайтон интерпретируемый язык и получить настоящий скомпилированный exe файл — нет возможности. Однако, есть такие проекты как: py2exe или cx_freeze, которые, анализируя код приложения, собирают все зависимые библиотеки и сам интерпретатор в отдельной папке, и создают запускающий exe файл. Этот exe файл при запуске подготовит окружение для нашего приложения, запустит интерпретатор python и уже в нем — наше приложение. После работ утилит py2exe или cx_freeze у нас всегда появляются куча dll и др. файлов.

Так что же сделать для получения одного exe файла, вместо кучи файлов?

Будем считать, что у нас уже есть папка (dist) с зависимыми файлами, после прогона py2exe или cx_freeze .

Первым делом, чистим за утилитами py2exe или cx_freeze библиотеки и файлы, которые гарантированно не будут использоваться. (например: w9xpopen.exe). Таким образом, уменьшаем размер нашего будущего exe файла и скорость его загрузки.

Далее, упаковываем архиватором 7zip (если у Вас его нет, то скорее качаем с официального сайта: www. 7-zip .org ) папку (dist) со всеми файлами.

How to turn your Python file (.py) into an .exe (Tutorial 2021)

Все параметры упаковки лучше запомнить, так как далее они понадобятся.
Я упаковку делаю из командной строки поэтому и запомнить просто 🙂
Например: C:7-Zip7z.exe a -r -t7z -m1=LZMA dist.7z dist*.*
Далее начинается темная магия, которой порой, пользуются всякие недалекие вирусописатели.

Идем на сайт http://7zsfx.info/ru/ и скачиваем специальный модифицированный модуль (например: 7zsd.sfx ) для распаковки нашего приложения “по тихому” и запуску одного из файлов внутри архива. Модуль должен быть с поддержкой именно того сжатия, которое применяем, в моем случае это LZMA, a есть еще лучше — LZMA2 )

Далее готовим файл настройки для модуля 7zsd.sfx :
(config.txt)

RunProgram background-color: transparent; color: black; font-family: Arial; font-size: 14.6666666666667px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;»>/s «

Читайте также:
В какой программе делают баннеры для ютуба

Главная строчка здесь это: RunProgram с ключем /s — говорит, что после распаковки запустить “по тихому” (/s) файл из архива.

Следующим шагом идем в командную строку и делаем следующие:
copy /b 7zsd.sfx + config.txt + dist.7z alone.exe

Итогом получаем один exe ( alone.exe ) файл, который на самом деле является файлом состоящем из трех частей. Распаковщика ( 7zsd.sfx ), конфига к нему ( config.txt ) и нашего дистрибутива ( dist.7z ).

После запуска, произойдет следующее: во временной директории (TEMP) будет развернут наш дистрибутив и автоматом запустится файл из него ( alone.exe ). Распакованные файлы останутся лежать в (TEMP), если оно нам не надо, то в конфигурационном файле надо добавить ключик delete=директория.

А вообще рекомендую посмотреть справку по модулю 7zsfx на официальном сайте:

Как поменять иконку приложения и описание программы?
Для этого воспользуемся программой Resource Hacker
Процесс простой, описывать думаю нет смысла.
Что дальше?

Как скомпилировать программу на Python в .exe файл

Все использованные программы могут работать из командной строки и легко принимают разные параметры. Поэтому можно легко сделать bat файл со всем этим процессом (компилятор_всея_пайтон.bat) и запускать по мере необходимости.

Оптимизация: скорость, размер, можно попробовать воспользоваться UPX
http://upx.sourceforge.net/ для сжатия. Может оно что-то и даст.
Приятные бонусы.

Бесплатным бонусом идет возможность шифрования кода нашего приложения и установка пароля на запуск приложения. Но… Ниже о безопасности кода.

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

Исходный код можно все равно перехватить, например, подсмотрев его во время распаковки архива во временную директорию.

Медленный запуск приложения. (Можно победить подбором параметров сжатия и удалением мусорных файлов из дистрибутива) (А на SSD, так вообще не заметно:) )

Второй пункт можно чуть улучшить, если использовать распаковку на виртуальный диск в памяти, который предварительно надо создать. Это даст еще 2 очка к безопасности кода. 🙂 Но защита все равно очень слабенькая…

Источник: pingi-pingi.blogspot.com

Скомпилировать python-код в exe файл на языке C

Результат преобразования при помощи nuitka

Результат преобразования при помощи nuitka

Недавно нашел простую и очень мощную библиотеку на Python для компиляции кода в исполняемый файл на языке C. Сама фраза для понимания может показаться сложной, но сейчас попробую объяснить и показать простейший пример, который подойдёт большинству разработчиков.

Читайте также:
Что такое программа uninstaller

Библиотека называется nuitka и установить её можно при помощи pip install nuitka.

Важнейшим замечанием является лицензия, и она свободная — Nuitka распространяется под лицензией Apache.

Nuitka — хорошая замена интерпретатору Python. Она компилирует каждую языковую конструкцию во всех соответствующих версиях CPython и даже в нерелевантных версиях, таких как 2.6 и 3.3. Переводит Python в программу C, которая затем связывается с libpython для выполнения точно так же, как CPython.

Nuitka уже немного быстрее, чем CPython. По заявлению разработчиков, они получают ускорение на 335% в pystone (Nuitka версии 0.6.17 с Debian Python 2.7).

Теперь к примеру компиляции в исполняемый файл с преобразованием в C:

python -m nuitka —standalone —plugin-enable=pyqt5 —windows-uac-admin —windows-disable-console —windows-icon-from-ico=data/LicenseChecker.ico —include-data-dir=data=data main.pyw

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

—plugin-enable=pyqt5 нужен для тех, кто использует pyqt5, так как без него библиотека может быть не включена, или включена частично. Собственно, узнал я об этом из сообщений, которые nuitka выдаёт при компиляции, поэтому читайте внимательно и переводите красный текст.

—windows-uac-admin это требование прав администратора для запуска программы. В моём случае они нужны, но если вашей программы в них нет нужны, то и включать не нужно, так больше доверия будет, если программа неизвестна.

—windows-disable-console данный параметр отключает запуск командной строки при открытии исполняемого файла.

—windows-icon-from-ico=data/LicenseChecker.ico самое интересное — иконка для исполняемого файла.

—include-data-dir=data=data включить папку data в конечную папку с приложением и назвать её data.

ну а main.pyw в моём примере, это название вашего скрипта, который вы хотите скомпилировать.

Есть еще параметр —onefile если нужно собрать всё в один файл. Если собирать в один файл, то для сжатия исполняемого файла может пригодиться pip install zstandard — сжатие с 33 мегабайт до 11 в моём случае, но могут быть ошибки, поэтому сразу проверяйте работоспособность.

Читайте также:
Понятие компьютерного вируса антивирусные программы

Также —include-data-file=/path/to/files/*.txt=folder_name/, но использовать его для *.* не стоит — выдаёт ошибку.

Также напишу пару параметров, которые нашел в хэлпе:

Источник: alekseycheremnykh.ru

Блог дяди Freemanа

Build EXE file with Python/Сборка EXE файла на Python

Порой требуется для различных ситуаций запускать код на машинах, где нет установленного Python, либо мы хотим свой код скрыть от незатейливых пользователей. В этом случае, уже все придумано — встречайте — Pyinstaller!

Как его правильно готовить и что он может, ниже:

Введение

Pyinstaller собирает python-приложение и все зависимости в один пакет. Пользователь может запускать приложение без установки интерпретатора python или каких-либо модулей. Pyinstaller поддерживает python 2.7 и python 3.3+

Сборка под целевую систему производится на аналогичной, то есть под WIndows на Windows, а под Linux значит на Linux. Кроссплатформенности тут нету. Да и не нужно, по сути

Установка

Перед началом работы с Pyinstaller, как и с любым модулем Python, его надо установить:

pip install pyinstaller

Сборка бинарника

Для начала надо запустить консоль (для Windows это CMD), перейти в папку, где лежит основной файл .py, и начинать сборку.

Параметры, которые больше всех нужны для Pyinstaller следующие:

—onefile — сборка в один файл, т.е. файлы .dll не пишутся. —windowed — при запуске приложения, будет появляться консоль. —noconsole — при запуске приложения, консоль появляться не будет. —icon=app.ico — добавляем иконку в окно.

Теперь, определившись с тем, что хотим собрать, пишем команду:

pyinstaller —onefile —noconsole main.py

После работы программы вы найдете две папки: dist и build. Собственно в папке dist и находится наше приложение. Впоследствии папку build можно спокойно удалить, она не влияет на работоспособность приложения. А файл EXE можно спокойно копировать куда нужно и запускать как обычное приложение.

Источник: zotovp.wordpress.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru