如何在不卸载PythonWin的情况下禁用PythonWin的“将输出重定向到win32trace远程收集器”功能?
当我运行一个wxPython应用程序时,它会打印出“将输出重定向到win32trace远程收集器”这句话。我必须打开PythonWin的追踪收集工具才能查看这个追踪输出。
因为我对收集这个输出不感兴趣,我该怎么关闭这个功能呢?
3 个回答
1
看起来这是一个关于 TortoiseHG 的问题。使用 win32gui.GetOpenFileNameW 时也会出现这个问题。卸载这个软件可以解决这个问题。不过,很遗憾我没有找到真正的解决办法来修复它。
1
这条信息让我误以为win32trace在阻止我在IDE的普通控制台中看到未捕获的异常。其实真正的问题是,wxPython默认会把标准输出和错误输出重定向到一个弹出窗口,而这个窗口在出现未捕获的异常后会很快消失。为了解决这个问题,我只需要把
redirect=0传递给我应用程序的父类构造函数就可以了。
class MyApp(wx.App):
def __init__(self):
# Prevent wxPython from redirecting stdout/stderr:
super(MyApp, self).__init__(redirect=0)
虽然这个问题解决了,但我还是对如何控制win32trace感到好奇。
2
你在创建你的 wx.App() 时,甚至可以把那个东西传进去:
if __name__ == "__main__":
app = wx.App(redirect=False) #or 0
app.MainLoop()