Running script in __main__ shows no output in IDLE

Scott David Daniels scott.daniels at
Tue May 23 01:57:56 CEST 2006

heidi.hunter at wrote:
> I just downloaded the most recent (2.4.3) Python and IDLE (1.1.3) to
> Windows XP Professional. I'm new to the IDLE environment, so hopefully
> someone can tell me what I'm missing here! Below is the code, which I'm
> editing within IDLE, and attempting to test with the Run commands.
> I was expecting to see at least see the prints to stdout from the if
> __name__ ... statement and main() function, but when I use F5 Run
> module I don't see any output or errors. Any suggestions? Does IDLE
> still need the executable file statement at the top even if I run it
> explicity?
> ---------------------------------------------------------------------------------------
> import sys
> from xml.sax import ContentHandler, make_parser
> from xml.sax.handler import feature_namespaces
> class AuthorHandler(ContentHandler):
> #    """Converts an author file"""
>     def __init__(self,outfilename):
> #        """Constructor. Takes output file name."""
>         self.outfile = ""
>         self.insertCmd = "INSERT Authors SET "
Don't comment out those strings, you'll find them more useful in
Idle if they are there.

> def main(args):
>     ...
>     # Parse the file; your handler's methods will get called
>     parser.parse(args[0])
>     print ah.insertCmd
> if __name__ == "__main__":
>     print "to main"
>     main("\\Iceman\propod\flash\xml\webService\XmlData\Authors\Heidi")

As someone else said, use both a better string constant and a list,
since main looks at "args[0]".
If nothing else:


To investigate the idle environment, simply add:

   if __name__ == "__main__":
       print "to main"
       print 'Sorry, __name was %r, not "__main__".' % __name__

--Scott David Daniels
scott.daniels at

More information about the Python-list mailing list