可能重复:
How can I hide the console window in a PyQt app running on Windows?
如何在Windows中运行wxPython程序时摆脱显示为标准输出的控制台?
答案 0 :(得分:6)
不熟悉wxPython,但如果使用pythonw.exe而不是python.exe调用脚本,则不应出现控制台窗口。我相信将脚本保存为script.pyw也可以。
答案 1 :(得分:6)
其他人已经建议从py重命名为pyw。 如果您在创建wx.App类时参考输出重定向传递redirect = True。
例如参见http://www.wxpython.org/docs/api/wx.App-class.html
__init__
的签名是
__init__(self, redirect=False, filename=None, useBestVisual=False, clearSigInt=True)
如果您将redirect=True
和文件名设置为与“无”不同,则sys.stdout
和sys.stderr
将重定向到文件名。请注意,在Windows和Mac重定向上,默认值为True。如果redirect==True and filename is None
,输出将打印在与其他帧不同的弹出窗口中。
这非常有用,因此在调试时您可以关注正在发生的事情,同时不会在发布模式下将应用程序内部的用户界面弄乱。
答案 2 :(得分:6)
最简单的方法:
if __name__ == "__main__":
app = wx.App(0) #<--- or False
frame = MyFrame('My Frame')
frame.Show(True)
app.MainLoop()
这将打印到stdout而不是wxPython窗口。
答案 3 :(得分:3)
我不知道wxPython,但解决方案可能就像使用pythonw.exe
来运行程序而不是python.exe
一样简单。