GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Python Wiki
  • PSF Wiki
  • Jython Wiki
  • Python Wiki
  • Archive

This view

  • Original page
  • New address

GeezerVison is showing wiki.python.org — Executable Modules

View as Markdown

Executable Modules¶

Legacy Wiki Page

This page was migrated from the old MoinMoin-based wiki. Information may be outdated or no longer applicable. For current documentation, see python.org.

Python 2.4 added the -m option to execute modules as scripts (Python documentation). PEP 338, adopted in Python 2.5, adds the ability to execute modules in the search path.

Executable Standard Library Modules¶

The following standard library modules work as command-line tools:

  • python3 -m http.server - Start a web server, serving files from the current directory (full docs).

  • python -m json.tool path/to/data.json - Validate and pretty-print JSON. Omitting the path will read from standard input (full docs).

  • python -m pdb script.py - Run a script in the debugger, starting post-mortem debugging on unhandled exceptions (full docs).

  • python -m timeit -s 'import string' '"x" in string.lowercase' - Run some setup code (import string), and then run test code many (1,000,000 times) to time execution of the code. (full docs)

Writing Executable Modules¶

Here’s a sample executable Python script:

def main():
    import sys

    for pos, arg in enumerate(sys.argv):
        print('Argument %d: %s' % (pos, arg))


if __name__ == '__main__':
    main()

If this file is importable as mylib.script, then running python -m mylib.script foo bar will output:

Argument 0: /full/path/to/mylib/script.py
Argument 1: foo
Argument 2: bar

The starting line #!/usr/bin/env python is used in UNIX-like shells. If the script is given execute permissions, then it can also be executed directly. python may still point to Python 2.x on some systems, and in this case python3 can disambiguate.

A fully-featured script should use a library to parse the command line, such as argparse. See the source for json.tool for a fuller example.

Previous
Esky
Next
Execution Scenar iOS
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.