From 59d121af67c95e69e430277fb482c2a2c16274ac Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sat, 20 Oct 2007 18:08:14 +0000 Subject: [PATCH] * Add new toplevel chapter, "Using Python." (how to install, configure and setup python on different platforms -- at least in theory.) * Move the Python on Mac docs in that chapter. * Add a new chapter about the command line invocation, by stargaming. --- Doc/contents.rst | 1 + Doc/howto/index.rst | 1 - Doc/using/cmdline.rst | 427 +++++++++++++++++++++ Doc/using/index.rst | 17 + Doc/{howto/pythonmac.rst => using/mac.rst} | 0 5 files changed, 445 insertions(+), 1 deletion(-) create mode 100644 Doc/using/cmdline.rst create mode 100644 Doc/using/index.rst rename Doc/{howto/pythonmac.rst => using/mac.rst} (100%) diff --git a/Doc/contents.rst b/Doc/contents.rst index 926b4114ef4..fc9ff0354d3 100644 --- a/Doc/contents.rst +++ b/Doc/contents.rst @@ -6,6 +6,7 @@ whatsnew/2.6.rst tutorial/index.rst + using/index.rst reference/index.rst library/index.rst extending/index.rst diff --git a/Doc/howto/index.rst b/Doc/howto/index.rst index e668856fae6..68aab60539b 100644 --- a/Doc/howto/index.rst +++ b/Doc/howto/index.rst @@ -14,7 +14,6 @@ Currently, the HOWTOs are: :maxdepth: 1 advocacy.rst - pythonmac.rst curses.rst doanddont.rst functional.rst diff --git a/Doc/using/cmdline.rst b/Doc/using/cmdline.rst new file mode 100644 index 00000000000..8a647afce70 --- /dev/null +++ b/Doc/using/cmdline.rst @@ -0,0 +1,427 @@ +.. highlightlang:: none + +Invoking the Python executable +============================== + +The CPython interpreter scans the command line and the environment for various +settings. + +.. note:: + + Other implementation's command line schemes may differ. See + :ref:`implementations` for further resources. + + +Command line +------------ + +When invoking Python, you may specify any of these options:: + + python [-dEiOQStuUvxX3?] [-c command | -m module-name | script | - ] [args] + +The most common use case is, of course, a simple invocation of a script:: + + python myscript.py + + +Interface options +~~~~~~~~~~~~~~~~~ + +The interpreter interface resembles that of the UNIX shell: + +* 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 ``-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 searched 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. + +.. cmdoption:: -c + + Execute the Python code in *command*. *command* can be one ore more + statements separated by newlines, with significant leading whitespace as in + normal module code. + + If this option is given, the first element of :data:`sys.argv` will be + ``"-c"``. + + +.. cmdoption:: -m + + Search :data:`sys.path` for the named module and run the corresponding module + file as if it were executed with ``python modulefile.py`` as a script. + + Since the argument is a *module* name, you must not give a file extension + (``.py``). However, the ``module-name`` does not have to be a valid Python + identifer (e.g. you can use a file name including a hyphen). + + .. note:: + + This option cannot be used with builtin modules and extension modules + written in C, since they do not have Python module files. + + If this option is given, the first element of :data:`sys.argv` will be the + full path to the module file. + + Many standard library modules contain code that is invoked on their execution + as a script. An example is the :mod:`timeit` module:: + + python -mtimeit -s 'setup here' 'benchmarked code here' + python -mtimeit -h # for details + + .. seealso:: + :func:`runpy.run_module` + The actual implementation of this feature. + + :pep:`338` -- Executing modules as scripts + + .. versionchanged:: 2.5 + The module name can now include packages. + + +.. describe::