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

Reply via email to