Codeby
36.3K subscribers
2K photos
96 videos
12 files
7.78K links
Блог сообщества Кодебай

Чат: @codeby_one
Форум: codeby.net
Обучение: codeby.academy

CTF: hackerlab.pro

VK: vk.com/codeby
YT: clck.ru/XG99c

Сотрудничество: @KinWiz

Реклама: @Savchenkova_Valentina
Download Telegram
PyInstaller: Упаковка Python-приложений в исполняемые файлы

PyInstaller — инструмент для создания автономных исполняемых пакетов из Python-скриптов. Пользователь может запускать собранное приложение без установки интерпретатора Python или каких-либо модулей. PyInstaller анализирует исходный скрипт, обнаруживает все необходимые модули и библиотеки, после чего собирает их копии вместе с интерпретатором Python в одну папку или, опционально, в один исполняемый файл.


👉Преимущества
- Работает с Python версий 3.8–3.14
- Поддерживает Windows (32/64-bit, ARM64), Linux (glibc/musl), macOS (x86_64/arm64)
- Корректно упаковывает популярные пакеты: numpy, PyQt5/PyQt6, PySide2/PySide6, wxPython, matplotlib и другие
- Поддерживает код-сайн на macOS
- Включает MS Visual C++ DLL на Windows
- Не требует кросс-компиляции (сборка выполняется на целевой платформе)

⬇️Установка
sudo apt install pyInstaller

Проверка
pyInstaller -h


⏺️Создание одно папочного пакета (режим по умолчанию)
pyinstaller script.py

Создает папку dist/script/ с исполняемым файлом и всеми зависимостями

⏺️Создание однофайлового исполняемого пакета
pyinstaller --onefile script.py

Создает один исполняемый файл dist/script.exe (или script на Linux/macOS), который распаковывается во временную папку при запуске

⏺️Добавление дополнительных файлов данных
pyinstaller --add-data "config.ini:." --add-data "images:images" script.py

Формат: "source:dest_dir". Для Windows разделитель — ;, для Linux/macOS — :.

⏺️Указание путей поиска импортов
pyinstaller --paths ./external_libs --paths ./helpers script.py


⏺️Исключение модулей
pyinstaller --exclude-module tkinter --exclude-module test script.py


⏺️Упаковка веб-приложения (Flask/Django)
pyinstaller --onefile --add-data "templates:templates" --add-data "static:static" --hidden-import jinja2 run.py


⏺️Создание пакета для многократного использования с очисткой кэша
pyinstaller --clean --distpath ./release --workpath ./build_tmp --onefile script.py


🔎Ограничения и требования
- Cборка выполняется на той же ОС, для которой создается пакет (не кросс-компиляция)
- Поддерживаются указанные версии (Python 3.10.0 содержит баг, несовместимый с PyInstaller)
- Требуются ldd, objdump, objcopy (пакет binutils)
- Однофайловые пакеты включают интерпретатор и библиотеки, что увеличивает размер (обычно 5–50 МБ)
- Некоторые антивирусные программы могут ложно срабатывать на упакованные приложения

#PyInstaller #tool #pentest #Python

🔗 Все наши каналы 🔁 Все наши чаты 🪧 Для связи с менеджером
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥4