Martin Wisskirchen schrieb:
ich möchte eine grafische Anwendung (Tkinter) erstellen, die verschiedene Informationen sammelt und darauf hin den MS Visual Studio 7.1 C++ Compiler (Terminal) startet. Dieser gibt normalerweise seine Ausgaben auch anf dem Terminal aus. Diese Ausgaben möchte ich allerdings in ein Text-Widget umlenken. Dies mache ich bereits mit os.popen3 und das funktioniert auch soweit. Das Problem ist allerdings, das die Ausgaben erst von den Fileobjects ausgegeben werden, wenn der Compiler beendet ist. Um denCompilerungsprozess zu überwachen ist dies allerdings denkbar schlecht. Dies liegt wahrscheinlich daran, dass der Compuiler Output seitens des Compiler-Prozesses gebuffert wird. Unter Unix kann man dies scheinbar (?) unter Zuhilfename von "pty" verhindern, dass steht leider unter Windows nicht zur Verfügung.....
Hier der Code:
#qmakecall ruft qmake mit den zugehöhrigen Parametern auf....
(input, output, error) = os.popen3(qmakecall)
#self.debugWindow ist das TextWidget, das übergeben wird..... self.debugWindow.insert(END, input.read()) self.debugWindow.insert(END, error.read())
Hi, nur so'n Schnellgriff in's Blaue, hast du mal versucht, ob subprocess sich anders verhält? http://docs.python.org/lib/module-subprocess.html Ansonsten sehe ich an deinem Source, dass du die beiden read()s nacheinander aufrufst. Dadurch erhälst du die zweite Ausgabe natürlich dann auch erst, wenn stdout zu Ende gelesen wurde. Stefan _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de