Инструмент | Плюсы | Минусы | Когда использовать |
---|---|---|---|
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
— должно появиться окно консоли с текстом.