cpython_sandbox / Doc / using / cmdline.rst

Command line and environment

The CPython interpreter scans the command line and the environment for various settings.

Command line

When invoking Python, you may specify any of these options:

python [-bBdEhiOqsSuvVWx?] [-c command | -m module-name | script | - ] [args]

The most common use case is, of course, a simple invocation of a script:


Interface options

The interpreter interface resembles that of the UNIX shell, but provides some additional methods of invocation:

  • When called with standard input connected to a tty device, it prompts for commands and executes them until an EOF (an end-of-file character, you can produce that with Ctrl-D on UNIX or Ctrl-Z, Enter on Windows) is read.
  • When called with a file name argument or with a file as standard input, it reads and executes a script from that file.
  • When called with a directory name argument, it reads and executes an appropriately named script from that directory.
  • When called with -c command, it executes the Python statement(s) given as command. Here command may contain multiple statements separated by newlines. Leading whitespace is significant in Python statements!
  • When called with -m module-name, the given module is located on the Python module path and executed as a script.

In non-interactive mode, the entire input is parsed before it is executed.

An interface option terminates the list of options consumed by the interpreter, all consecutive arguments will end up in :data:`sys.argv` -- note that the first element, subscript zero (sys.argv[0]), is a string reflecting the program's source.

If no interface option is given, :option:`-i` is implied, sys.argv[0] is an empty string ("") and the current directory will be added to the start of :data:`sys.path`. Also, tab-completion and history editing is automatically enabled, if available on your platform (see :ref:`rlcompleter-config`).

Generic options

Miscellaneous options

Options you shouldn't use

Environment variables

These environment variables influence Python's behavior, they are processed before the command-line switches other than -E. It is customary that command-line switches override environmental variables where there is a conflict.

Debug-mode variables

Setting these variables only has an effect in a debug build of Python, that is, if Python was configured with the --with-pydebug build option.