| \section{Built-in Module \sectcode{sys}} |
| |
| \bimodindex{sys} |
| This module provides access to some variables used or maintained by the |
| interpreter and to functions that interact strongly with the interpreter. |
| It is always available. |
| |
| \renewcommand{\indexsubitem}{(in module sys)} |
| \begin{datadesc}{argv} |
| The list of command line arguments passed to a Python script. |
| \code{sys.argv[0]} is the script name. |
| If no script name was passed to the Python interpreter, |
| \code{sys.argv} is empty. |
| \end{datadesc} |
| |
| \begin{datadesc}{builtin_module_names} |
| A list of strings giving the names of all modules that are compiled |
| into this Python interpreter. (This information is not available in |
| any other way --- \code{sys.modules.keys()} only lists the imported |
| modules.) |
| \end{datadesc} |
| |
| \begin{datadesc}{exc_type} |
| \dataline{exc_value} |
| \dataline{exc_traceback} |
| These three variables are not always defined; they are set when an |
| exception handler (an \code{except} clause of a \code{try} statement) is |
| invoked. Their meaning is: \code{exc_type} gets the exception type of |
| the exception being handled; \code{exc_value} gets the exception |
| parameter (its \dfn{associated value} or the second argument to |
| \code{raise}); \code{exc_traceback} gets a traceback object which |
| encapsulates the call stack at the point where the exception |
| originally occurred. |
| \end{datadesc} |
| |
| \begin{funcdesc}{exit}{n} |
| Exit from Python with numeric exit status \var{n}. This is |
| implemented by raising the \code{SystemExit} exception, so cleanup |
| actions specified by \code{finally} clauses of \code{try} statements |
| are honored, and it is possible to catch the exit attempt at an outer |
| level. |
| \end{funcdesc} |
| |
| \begin{datadesc}{exitfunc} |
| This value is not actually defined by the module, but can be set by |
| the user (or by a program) to specify a clean-up action at program |
| exit. When set, it should be a parameterless function. This function |
| will be called when the interpreter exits in any way (but not when a |
| fatal error occurs: in that case the interpreter's internal state |
| cannot be trusted). |
| \end{datadesc} |
| |
| \begin{datadesc}{last_type} |
| \dataline{last_value} |
| \dataline{last_traceback} |
| These three variables are not always defined; they are set when an |
| exception is not handled and the interpreter prints an error message |
| and a stack traceback. Their intended use is to allow an interactive |
| user to import a debugger module and engage in post-mortem debugging |
| without having to re-execute the command that caused the error (which |
| may be hard to reproduce). The meaning of the variables is the same |
| as that of \code{exc_type}, \code{exc_value} and \code{exc_tracaback}, |
| respectively. |
| \end{datadesc} |
| |
| \begin{datadesc}{modules} |
| Gives the list of modules that have already been loaded. |
| This can be manipulated to force reloading of modules and other tricks. |
| \end{datadesc} |
| |
| \begin{datadesc}{path} |
| A list of strings that specifies the search path for modules. |
| Initialized from the environment variable \code{PYTHONPATH}, or an |
| installation-dependent default. |
| \end{datadesc} |
| |
| \begin{datadesc}{ps1} |
| \dataline{ps2} |
| Strings specifying the primary and secondary prompt of the |
| interpreter. These are only defined if the interpreter is in |
| interactive mode. Their initial values in this case are |
| \code{'>>> '} and \code{'... '}. |
| \end{datadesc} |
| |
| \begin{funcdesc}{settrace}{tracefunc} |
| Set the system's trace function, which allows you to implement a |
| Python source code debugger in Python. The standard modules |
| \code{pdb} and \code{wdb} are such debuggers; the difference is that |
| \code{wdb} uses windows and needs STDWIN, while \code{pdb} has a |
| line-oriented interface not unlike dbx. See the file \file{pdb.doc} |
| in the Python library source directory for more documentation (both |
| about \code{pdb} and \code{sys.trace}). |
| \end{funcdesc} |
| \ttindex{pdb} |
| \ttindex{wdb} |
| \index{trace function} |
| |
| \begin{funcdesc}{setprofile}{profilefunc} |
| Set the system's profile function, which allows you to implement a |
| Python source code profiler in Python. The system's profile function |
| is called similarly to the system's trace function (see |
| \code{sys.settrace}), but it isn't called for each executed line of |
| code (only on call and return and when an exception occurs). Also, |
| its return value is not used, so it can just return \code{None}. |
| \end{funcdesc} |
| \index{profile function} |
| |
| \begin{datadesc}{stdin} |
| \dataline{stdout} |
| \dataline{stderr} |
| File objects corresponding to the interpreter's standard input, |
| output and error streams. \code{sys.stdin} is used for all |
| interpreter input except for scripts but including calls to |
| \code{input()} and \code{raw_input()}. \code{sys.stdout} is used |
| for the output of \code{print} and expression statements and for the |
| prompts of \code{input()} and \code{raw_input()}. The interpreter's |
| own prompts and (almost all of) its error messages go to |
| \code{sys.stderr}. \code{sys.stdout} and \code{sys.stderr} needn't |
| be built-in file objects: any object is acceptable as long as it has |
| a \code{write} method that takes a string argument. |
| \end{datadesc} |
| |
| \begin{datadesc}{tracebacklimit} |
| When this variable is set to an integer value, it determines the |
| maximum number of levels of traceback information printed when an |
| unhandled exception occurs. The default is 1000. When set to 0 or |
| less, all traceback information is suppressed and only the exception |
| type and value are printed. |
| \end{datadesc} |