Python 2.7 如何在关闭Windows命令控制台时防止tkinter窗口关闭

Python 2.7 如何在关闭Windows命令控制台时防止tkinter窗口关闭,python-2.7,tkinter,Python 2.7,Tkinter,我打开CMD控制台运行main.exe。I类型: python main.exe My main.exe是一个用Tkinter编写的小窗口。当我关闭命令控制台时,程序结束,窗口关闭。我想在不终止程序的情况下终止控制台 编辑: 将我的文件保存为.pyw不起作用。而且,控制台不仅仅是神奇地出现。我没有在IDE中运行脚本。我正在用DOS打开它。当我关闭cmd控制台时,程序刚好关闭。使用pythonw.exe运行它 原因是在Windows上,可执行文件有一个标志,告诉操作系统它们是否使用控制台。pyt

我打开CMD控制台运行main.exe。I类型:

python main.exe
My main.exe是一个用Tkinter编写的小窗口。当我关闭命令控制台时,程序结束,窗口关闭。我想在不终止程序的情况下终止控制台

编辑:


将我的文件保存为.pyw不起作用。而且,控制台不仅仅是神奇地出现。我没有在IDE中运行脚本。我正在用DOS打开它。当我关闭cmd控制台时,程序刚好关闭。

使用pythonw.exe运行它

原因是在Windows上,可执行文件有一个标志,告诉操作系统它们是否使用控制台。python.exe需要一个控制台,如果尚未连接到控制台,则将创建一个控制台。pythonw.exe与GUI标志链接,不创建控制台,如果从控制台窗口运行,将从该控制台分离

这就是为什么Tk在Windows上使用wish.exe,而不是带有“package require Tk”的tclsh.exe,后者在Unix上可以,但在Windows上提供了一个不需要的控制台窗口

如果将扩展名更改为.pyw无助于检查与此扩展名关联的程序。例如,在使用Python 3.4的Windows计算机上,我有:

C:\opt\Python>assoc .pyw
.pyw=Python.NoConFile

C:\opt\Python>ftype Python.NoConFile
Python.NoConFile="C:\Windows\pyw.exe" "%1" %*

并且pyw.exe在运行时不会连接到我的控制台。

Perfect。在任何地方都找不到这个答案。