[Tutor] PyScripter header?

eryksun eryksun at gmail.com
Wed May 8 13:21:37 CEST 2013


On Wed, May 8, 2013 at 4:10 AM, Jim Mooney <cybervigilante at gmail.com> wrote:
>
> def main():
>     pass
>
> if __name__ == '__main__':
>     main()
>
> What is that stuff?  I thought I was getting away from all this
> business of defining a main entry point. I don't see it in any of the
> Py library files or other Py programs.

http://docs.python.org/3/library/__main__

For Windows multiprocessing see the "Safe import of main module" section:

http://docs.python.org/3/library/multiprocessing#windows

As to the standard library, excluding obvious test modules, I count
approximately 150 uses in 3.3.1.

http://pastebin.com/t78Aab8N

http://hg.python.org/cpython/file/d9893d13c628/Lib

In a couple of cases where the file is named __main__.py, the
following test is used instead:

    if sys.argv[0].endswith("__main__.py"):

Much of what I left in the list are entry points for tests and demos,
but there are scripts too, such as pydoc, profile, tabnanny, and the
new venv module for creating virtual environments. You can run a
module as __main__ with the -m option. For example:

    python3 -m turtledemo.clock  # POSIX
    py -3 -m turtledemo.clock  # Windows w/ pylauncher


More information about the Tutor mailing list