On Fri, Dec 19, 2008 at 13:43, Fabio Zadrozny <fabi...@gmail.com> wrote: > Hi, > > I'm currently having problems to get the output of Python 3.0 into the > Eclipse console (integrating it into Pydev). > > The problem appears to be that stdout and stderr are not running > unbuffered (even passing -u or trying to set PYTHONUNBUFFERED), and > the content only appears to me when a flush() is done or when the > process finishes. > > So, in the search of a solution, I found a suggestion from > http://stackoverflow.com/questions/107705/python-output-buffering > > to use the following construct: > > sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) > > But that gives the error below in Python 3.0: > > sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0) > File "D:\bin\Python30\lib\os.py", line 659, in fdopen > return io.open(fd, *args, **kwargs) > File "D:\bin\Python30\lib\io.py", line 243, in open > raise ValueError("can't have unbuffered text I/O") > ValueError: can't have unbuffered text I/O > > So, I'd like to know if there's some way I can make it run unbuffered > (to get the output contents without having to flush() after each > write).
Notice how the exception specifies test I/O cannot be unbuffered. This restriction does not apply to bytes I/O. Simply open it as 'wb' instead of 'w' and it works. -Brett _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com