Command line and environment
The CPython interpreter scans the command line and the environment for various settings.
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:
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), is a string reflecting the program's source.
If no interface option is given, :option:`-i` is implied, sys.argv 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`).
Options you shouldn't use
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.
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.