| Инструмент | Плюсы | Минусы | Когда использовать |
|---|---|---|---|
| PyInstaller | Простота, поддержка всех ОС, автоопределение зависимостей | Большой размер итогового файла | Для большинства проектов (рекомендуется для начала) |
| cx_Freeze | Гибкость, поддержка всех ОС | Требует файла setup.py | Для сложных проектов с особыми требованиями |
| Nuitka | Компиляция в C, высокая производительность | Требует компилятора C, сложная настройка | Для коммерческих проектов, где важна скорость |
pip install pyinstaller
cd путь_к_папке_со_скриптом
pyinstaller --onefile ваш_скрипт.py
--noconsole, чтобы убрать консольное окно:
pyinstaller --onefile --noconsole ваш_скрипт.py
После завершения сборки перейдите в папку dist/ — там будет ваш ваш_скрипт.exe.
Подготовьте файл иконки в формате .ico (можно сконвертировать PNG в ICO через онлайн-конвертеры):
pyinstaller --onefile --icon=ваша_иконка.ico ваш_скрипт.py
pyinstaller --onefile --name "НазваниеПрограммы" ваш_скрипт.py
Если ваш скрипт использует внешние файлы (картинки, базы данных и т.д.):
pyinstaller --onefile --add-data "файл.txt;." ваш_скрипт.py
В коде обращайтесь к файлам через os.path.join(os.path.dirname(sys.argv[0]), "файл.txt")
Это ложное срабатывание. Решения:
Возможные причины:
--hidden-import--noupx (отключит сжатие UPX)test.py:print("Hello World!")
input("Нажмите Enter...")
pyinstaller --onefile test.py
Запустите dist/test.exe — должно появиться окно консоли с текстом.