如何在不卸载PythonWin的情况下禁用PythonWin的“将输出重定向到win32trace远程收集器”功能?

1 投票
3 回答
1769 浏览
提问于 2025-04-11 19:50

当我运行一个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()

wxPython wx.App 文档

撰写回答