[Idle-dev] (IOError: [Errno 9] Bad file descriptor) in IDLE for Python 2.3.4 (final)

Danny Yoo dyoo at hkn.eecs.berkeley.edu
Mon Jul 5 02:55:25 CEST 2004

> >   File "C:\PROGRA~1\lib\idlelib\ScriptBinding.py", line 96, in checksyntax
> >     return compile(source, filename, "exec")
> >   File "C:\PROGRA~1\lib\warnings.py", line 116, in warn_explicit
> >     showwarning(message, category, filename, lineno)
> >   File "C:\PROGRA~1\lib\idlelib\PyShell.py", line 55, in idle_showwarning
> >     file.write(warnings.formatwarning(message, category, filename, lineno))
> > IOError: [Errno 9] Bad file descriptor
> This problem has two levels.  First, the SyntaxWarning (you assigned to
> a global before declaring it) was going to __stderr__ and not to the
> shell.  I checked in a fix to send SyntaxWarning to the shell and also
> implemented the warnings.py policy of skipping the warning if the output
> stream was bogus. (Introduced at warnings.py 1.17 11Sep02)
> The second level is, why is your sys.__stderr__ call returning a bad
> file descriptor?  Since you saw the error, you must be using a dos box,
> but usually this problem shows up only when using pythonw and only when
> trying to write more than 4096 bytes (which is not the case for this
> warning).

Hi Kurt,

But what happens if that program is run repeatedly in the same IDLE shell?
Eventually, all that warning text should accumulate up to 4096 bytes.

Dragonfirebane originally posted a problem report on Tutor:


and he mentioned that the problem occurs after a while.  It may not happen
immediately, but I'd guess that after doing 'Run Script' a few times, the
length of the accumulated warnings might add up.  Does that sound

More information about the IDLE-dev mailing list