Скрыть окно консоли с помощью Tkinter и CX Freeze
Я использую cx_freeze для замораживания приложения tkinter. Когда я запускаю exe, я получаю удивительно бесполезное окно консоли вместе с моим Tkinter GUI.
Я хотел бы удалить / скрыть это бесполезное черное окно.
Я видел потоки, которые предлагают следующее:
root = tkinter.Tk()
root.withdraw()
приведенный выше код делает противоположное тому, что я хочу. Он скрывает мой GUI, в то время как бесполезное черное окно остается. Я бы хотел, чтобы все было наоборот.
7 ответов
этой вопрос очень похоже, но для wxPython и cx_Freeze. К счастью, получается, что внешний вид консоли можно настроить из скрипта сборки, а не из исходного кода. Заимствуя из двух лучших ответов, трюк устанавливает base
переменная в вашем скрипте сборки cx_Freeze:
import sys
from cx_Freeze import setup, Executable
base = None
if (sys.platform == "win32"):
base = "Win32GUI" # Tells the build script to hide the console.
# <The rest of your build script goes here.>
вот соответствующий документация (хотя он явно не упоминал, что base
управление консоли опцион.)
кроме того, просто потому, что это интересно, an ответ к другому вопросу решает проблему создания приложения GUI с или без опции консольного режима, что я думал, было очень круто.
Я помню, где-то читал, что в Windows, Если вы укажете расширение файла как .pyw
, Он будет запущен с pythonw.exe (без окна консоли). Тебе это подходит?
делайте точно так, как сказал Гэри, затем:
setup(name="ur package name",
version="ur package version",
description="as above",
executables=[Executable("ur_script.py", base=base)]
Это будет работать cx_Freeze
у меня была такая же проблема сегодня
то, что я использовал для компиляции моих программ python, было py2exe, и исправление было очень просто изменить файл установки, как показано ниже. Мой интерфейс написан с помощью Tkinter
изменить "setup.py" py2exe скрипт от:
Старый Код Python:
from distutils.core import setup
import py2exe
setup(console=['app.py'])
Новый Код Python:
from distutils.core import setup
import py2exe
setup(windows=['app.py'])
после того, как я сделал это и перезапустил мой сценарий установки, приложение загрузилось и не показало окно консоли. Только вещь при этом, если у вас есть приложение, отправляющее команды печати в окно консоли, вы не увидите тему. Надеюсь, это поможет.
Я предполагаю, что "черным окном" вы имеете в виду окно терминала. Чтобы отключить это от всплывающих окон, сохраните файл как a .расширение pyw вместо .py
при использовании pyinstaller использовать pyinstaller-gui.py В командной строке Windows введите
python pyinstaller-gui.py
Это сначала скажет: "пожалуйста, используйте только "pyinstaller.py". Gui не поддерживается."Изменить код я немного и вы сможете запустить это.
Он будет показывать всплывающее окно, чтобы выбрать свой сценарий и некоторые checkboxex. Проверь нет консоли(только для Windows)
для меня, используя опцию --base-name Win32GUI
строительство. Вот пример:
cxfreeze your_python_file.py --базовое имя Win32GUI --target-dir your_target_dir