当我运行 wxPython 应用程序时,它会打印字符串“将输出重定向到 win32trace 远程收集器”,我必须打开 PythonWin 的跟踪收集器工具才能查看该跟踪输出。
由于我对收集此输出不感兴趣,我应该如何禁用此功能?
您甚至可以在实例化 wx.App() 时传递它:
if __name__ == "__main__":
app = wx.App(redirect=False) #or 0
app.MainLoop()
这条消息让我误以为 win32trace 阻止我在常规控制台(我的 IDE)中看到未捕获的异常。真正的问题是 wxPython 默认将 stdout/stderr 重定向到一个弹出窗口,该窗口在未捕获的异常后迅速消失。为了解决这个问题,我只需要通过
重定向=0到我的应用程序的超类构造函数。
class MyApp(wx.App):
def __init__(self):
# Prevent wxPython from redirecting stdout/stderr:
super(MyApp, self).__init__(redirect=0)
尽管进行了修复,但我仍然对如何控制 win32trace 感到好奇。
这似乎是TortoiseHG的问题。使用 win32gui.GetOpenFileNameW 时也会发生这种情况。卸载解决了这个问题。不幸的是,我没有找到真正的解决方案来解决这个问题。