class PrintHook: def __init__(self): import sys #self.origOut = None #sys.stdout = self #self.origOut = sys.__stdout__ def write(self, text): import FreeCAD FreeCAD.Console.PrintMessage(text) #pass all other methods to __stdout__ so that we don't have to override them def __getattr__(self, name): return self.origOut.__getattr__(name) PrintHook()