Избавление от вывода консоли при замораживании программ Python с помощью Pyinstaller

Недавно я написал довольно простую программу для моего дедушки, использующую Python с графическим интерфейсом от Tkinter, и он отлично работает для того, для чего он будет его использовать. Однако есть, конечно, уродливое окно вывода консоли. Я успешно избавился от него, просто изменив расширение файла с .py на .pyw. Когда я замораживаю его с помощью PyInstaller, он снова появляется снова! Есть ли способ для меня исправить это?

Спасибо заранее.

Ответ 1

Если вы хотите скрыть окно консоли, здесь - это документация: Так вы используете опцию --noconsole

python pyinstaller.py --noconsole yourscript.py

Если вам нужна помощь с помощью pyinstaller, чтобы перейти к пункту, где вам нужно использовать опцию --noconsole здесь, это простой учебник для получения есть.

Ответ 2

Просто добавьте флаг --noconsole:

$ python pyinstaller.py --noconsole yourprogram.py

Возможно, вы захотите использовать --onefile, который создает отдельный файл .exe вместо папки.

Ответ 3

Это одна из первых вещей, которые возникают при поиске этой информации, поэтому я хотел бы добавить то, что нашел для выпуска 3.2 pyinstaller. Если вы уже упаковали свой script, запустив

pyinstaller --onefile your_script.py

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

    exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='main',
          debug=False,
          strip=False,
          upx=True,
          console=True )

Просто измените значение консоли на False. Затем запустите:

pyinstaller your_script.spec

Кроме того, если вы вносите изменения в свой код, запустите указанную выше команду, чтобы они отразились в файле your_script.exe. Я нашел это полезным для отладки различных других проблем.

Ответ 4

Pyinstaller -F --noconsole yourfilename.pyw

Это создаст один файл .exe

Pyinstaller --noconsole yourfilename.pyw

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