123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578 |
- .TH PYTHON "1"
- .\" To view this file while editing, run it through groff:
- .\" groff -Tascii -man python.man | less
- .SH NAME
- python \- an interpreted, interactive, object-oriented programming language
- .SH SYNOPSIS
- .B python
- [
- .B \-B
- ]
- [
- .B \-b
- ]
- [
- .B \-d
- ]
- [
- .B \-E
- ]
- [
- .B \-h
- ]
- [
- .B \-i
- ]
- [
- .B \-I
- ]
- .br
- [
- .B \-m
- .I module-name
- ]
- [
- .B \-q
- ]
- [
- .B \-O
- ]
- [
- .B \-OO
- ]
- [
- .B \-s
- ]
- [
- .B \-S
- ]
- [
- .B \-u
- ]
- .br
- [
- .B \-v
- ]
- [
- .B \-V
- ]
- [
- .B \-W
- .I argument
- ]
- [
- .B \-x
- ]
- [
- [
- .B \-X
- .I option
- ]
- .B \-?
- ]
- .br
- [
- .B \--check-hash-based-pycs
- .I default
- |
- .I always
- |
- .I never
- ]
- .br
- [
- .B \-c
- .I command
- |
- .I script
- |
- \-
- ]
- [
- .I arguments
- ]
- .SH DESCRIPTION
- Python is an interpreted, interactive, object-oriented programming
- language that combines remarkable power with very clear syntax.
- For an introduction to programming in Python, see the Python Tutorial.
- The Python Library Reference documents built-in and standard types,
- constants, functions and modules.
- Finally, the Python Reference Manual describes the syntax and
- semantics of the core language in (perhaps too) much detail.
- (These documents may be located via the
- .B "INTERNET RESOURCES"
- below; they may be installed on your system as well.)
- .PP
- Python's basic power can be extended with your own modules written in
- C or C++.
- On most systems such modules may be dynamically loaded.
- Python is also adaptable as an extension language for existing
- applications.
- See the internal documentation for hints.
- .PP
- Documentation for installed Python modules and packages can be
- viewed by running the
- .B pydoc
- program.
- .SH COMMAND LINE OPTIONS
- .TP
- .B \-B
- Don't write
- .I .pyc
- files on import. See also PYTHONDONTWRITEBYTECODE.
- .TP
- .B \-b
- Issue warnings about str(bytes_instance), str(bytearray_instance)
- and comparing bytes/bytearray with str. (-bb: issue errors)
- .TP
- .BI "\-c " command
- Specify the command to execute (see next section).
- This terminates the option list (following options are passed as
- arguments to the command).
- .TP
- .BI "\-\-check-hash-based-pycs " mode
- Configure how Python evaluates the up-to-dateness of hash-based .pyc files.
- .TP
- .B \-d
- Turn on parser debugging output (for expert only, depending on
- compilation options).
- .TP
- .B \-E
- Ignore environment variables like PYTHONPATH and PYTHONHOME that modify
- the behavior of the interpreter.
- .TP
- .B \-h ", " \-? ", "\-\-help
- Prints the usage for the interpreter executable and exits.
- .TP
- .B \-i
- When a script is passed as first argument or the \fB\-c\fP option is
- used, enter interactive mode after executing the script or the
- command. It does not read the $PYTHONSTARTUP file. This can be
- useful to inspect global variables or a stack trace when a script
- raises an exception.
- .TP
- .B \-I
- Run Python in isolated mode. This also implies \fB\-E\fP and \fB\-s\fP. In
- isolated mode sys.path contains neither the script's directory nor the user's
- site-packages directory. All PYTHON* environment variables are ignored, too.
- Further restrictions may be imposed to prevent the user from injecting
- malicious code.
- .TP
- .BI "\-m " module-name
- Searches
- .I sys.path
- for the named module and runs the corresponding
- .I .py
- file as a script.
- .TP
- .B \-O
- Remove assert statements and any code conditional on the value of
- __debug__; augment the filename for compiled (bytecode) files by
- adding .opt-1 before the .pyc extension.
- .TP
- .B \-OO
- Do \fB-O\fP and also discard docstrings; change the filename for
- compiled (bytecode) files by adding .opt-2 before the .pyc extension.
- .TP
- .B \-q
- Do not print the version and copyright messages. These messages are
- also suppressed in non-interactive mode.
- .TP
- .B \-s
- Don't add user site directory to sys.path.
- .TP
- .B \-S
- Disable the import of the module
- .I site
- and the site-dependent manipulations of
- .I sys.path
- that it entails. Also disable these manipulations if
- .I site
- is explicitly imported later.
- .TP
- .B \-u
- Force the stdout and stderr streams to be unbuffered.
- This option has no effect on the stdin stream.
- .TP
- .B \-v
- Print a message each time a module is initialized, showing the place
- (filename or built-in module) from which it is loaded. When given
- twice, print a message for each file that is checked for when
- searching for a module. Also provides information on module cleanup
- at exit.
- .TP
- .B \-V ", " \-\-version
- Prints the Python version number of the executable and exits. When given
- twice, print more information about the build.
- .TP
- .BI "\-W " argument
- Warning control. Python sometimes prints warning message to
- .IR sys.stderr .
- A typical warning message has the following form:
- .IB file ":" line ": " category ": " message.
- By default, each warning is printed once for each source line where it
- occurs. This option controls how often warnings are printed.
- Multiple
- .B \-W
- options may be given; when a warning matches more than one
- option, the action for the last matching option is performed.
- Invalid
- .B \-W
- options are ignored (a warning message is printed about invalid
- options when the first warning is issued). Warnings can also be
- controlled from within a Python program using the
- .I warnings
- module.
- The simplest form of
- .I argument
- is one of the following
- .I action
- strings (or a unique abbreviation):
- .B ignore
- to ignore all warnings;
- .B default
- to explicitly request the default behavior (printing each warning once
- per source line);
- .B all
- to print a warning each time it occurs (this may generate many
- messages if a warning is triggered repeatedly for the same source
- line, such as inside a loop);
- .B module
- to print each warning only the first time it occurs in each
- module;
- .B once
- to print each warning only the first time it occurs in the program; or
- .B error
- to raise an exception instead of printing a warning message.
- The full form of
- .I argument
- is
- .IB action : message : category : module : line.
- Here,
- .I action
- is as explained above but only applies to messages that match the
- remaining fields. Empty fields match all values; trailing empty
- fields may be omitted. The
- .I message
- field matches the start of the warning message printed; this match is
- case-insensitive. The
- .I category
- field matches the warning category. This must be a class name; the
- match test whether the actual warning category of the message is a
- subclass of the specified warning category. The full class name must
- be given. The
- .I module
- field matches the (fully-qualified) module name; this match is
- case-sensitive. The
- .I line
- field matches the line number, where zero matches all line numbers and
- is thus equivalent to an omitted line number.
- .TP
- .BI "\-X " option
- Set implementation specific option. The following options are available:
- -X faulthandler: enable faulthandler
- -X showrefcount: output the total reference count and number of used
- memory blocks when the program finishes or after each statement in the
- interactive interpreter. This only works on debug builds
- -X tracemalloc: start tracing Python memory allocations using the
- tracemalloc module. By default, only the most recent frame is stored in a
- traceback of a trace. Use -X tracemalloc=NFRAME to start tracing with a
- traceback limit of NFRAME frames
- -X importtime: show how long each import takes. It shows module name,
- cumulative time (including nested imports) and self time (excluding
- nested imports). Note that its output may be broken in multi-threaded
- application. Typical usage is python3 -X importtime -c 'import asyncio'
- -X dev: enable CPython's "development mode", introducing additional runtime
- checks which are too expensive to be enabled by default. It will not be
- more verbose than the default if the code is correct: new warnings are
- only emitted when an issue is detected. Effect of the developer mode:
- * Add default warning filter, as -W default
- * Install debug hooks on memory allocators: see the PyMem_SetupDebugHooks() C function
- * Enable the faulthandler module to dump the Python traceback on a crash
- * Enable asyncio debug mode
- * Set the dev_mode attribute of sys.flags to True
- * io.IOBase destructor logs close() exceptions
- -X utf8: enable UTF-8 mode for operating system interfaces, overriding the default
- locale-aware mode. -X utf8=0 explicitly disables UTF-8 mode (even when it would
- otherwise activate automatically). See PYTHONUTF8 for more details
- -X pycache_prefix=PATH: enable writing .pyc files to a parallel tree rooted at the
- given directory instead of to the code tree.
- -X int_max_str_digits=number: limit the size of int<->str conversions.
- This helps avoid denial of service attacks when parsing untrusted data.
- The default is sys.int_info.default_max_str_digits. 0 disables.
- .TP
- .B \-x
- Skip the first line of the source. This is intended for a DOS
- specific hack only. Warning: the line numbers in error messages will
- be off by one!
- .SH INTERPRETER INTERFACE
- 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 is read; when called with a
- file name argument or with a file as standard input, it reads and
- executes a
- .I script
- from that file;
- when called with
- .B \-c
- .IR command ,
- it executes the Python statement(s) given as
- .IR command .
- Here
- .I command
- may contain multiple statements separated by newlines.
- Leading whitespace is significant in Python statements!
- In non-interactive mode, the entire input is parsed before it is
- executed.
- .PP
- If available, the script name and additional arguments thereafter are
- passed to the script in the Python variable
- .IR sys.argv ,
- which is a list of strings (you must first
- .I import sys
- to be able to access it).
- If no script name is given,
- .I sys.argv[0]
- is an empty string; if
- .B \-c
- is used,
- .I sys.argv[0]
- contains the string
- .I '-c'.
- Note that options interpreted by the Python interpreter itself
- are not placed in
- .IR sys.argv .
- .PP
- In interactive mode, the primary prompt is `>>>'; the second prompt
- (which appears when a command is not complete) is `...'.
- The prompts can be changed by assignment to
- .I sys.ps1
- or
- .IR sys.ps2 .
- The interpreter quits when it reads an EOF at a prompt.
- When an unhandled exception occurs, a stack trace is printed and
- control returns to the primary prompt; in non-interactive mode, the
- interpreter exits after printing the stack trace.
- The interrupt signal raises the
- .I Keyboard\%Interrupt
- exception; other UNIX signals are not caught (except that SIGPIPE is
- sometimes ignored, in favor of the
- .I IOError
- exception). Error messages are written to stderr.
- .SH FILES AND DIRECTORIES
- These are subject to difference depending on local installation
- conventions; ${prefix} and ${exec_prefix} are installation-dependent
- and should be interpreted as for GNU software; they may be the same.
- The default for both is \fI/usr/local\fP.
- .IP \fI${exec_prefix}/bin/python\fP
- Recommended location of the interpreter.
- .PP
- .I ${prefix}/lib/python<version>
- .br
- .I ${exec_prefix}/lib/python<version>
- .RS
- Recommended locations of the directories containing the standard
- modules.
- .RE
- .PP
- .I ${prefix}/include/python<version>
- .br
- .I ${exec_prefix}/include/python<version>
- .RS
- Recommended locations of the directories containing the include files
- needed for developing Python extensions and embedding the
- interpreter.
- .RE
- .SH ENVIRONMENT VARIABLES
- .IP PYTHONHOME
- Change the location of the standard Python libraries. By default, the
- libraries are searched in ${prefix}/lib/python<version> and
- ${exec_prefix}/lib/python<version>, where ${prefix} and ${exec_prefix}
- are installation-dependent directories, both defaulting to
- \fI/usr/local\fP. When $PYTHONHOME is set to a single directory, its value
- replaces both ${prefix} and ${exec_prefix}. To specify different values
- for these, set $PYTHONHOME to ${prefix}:${exec_prefix}.
- .IP PYTHONPATH
- Augments the default search path for module files.
- The format is the same as the shell's $PATH: one or more directory
- pathnames separated by colons.
- Non-existent directories are silently ignored.
- The default search path is installation dependent, but generally
- begins with ${prefix}/lib/python<version> (see PYTHONHOME above).
- The default search path is always appended to $PYTHONPATH.
- If a script argument is given, the directory containing the script is
- inserted in the path in front of $PYTHONPATH.
- The search path can be manipulated from within a Python program as the
- variable
- .IR sys.path .
- .IP PYTHONPLATLIBDIR
- Override sys.platlibdir.
- .IP PYTHONSTARTUP
- If this is the name of a readable file, the Python commands in that
- file are executed before the first prompt is displayed in interactive
- mode.
- The file is executed in the same name space where interactive commands
- are executed so that objects defined or imported in it can be used
- without qualification in the interactive session.
- You can also change the prompts
- .I sys.ps1
- and
- .I sys.ps2
- in this file.
- .IP PYTHONOPTIMIZE
- If this is set to a non-empty string it is equivalent to specifying
- the \fB\-O\fP option. If set to an integer, it is equivalent to
- specifying \fB\-O\fP multiple times.
- .IP PYTHONDEBUG
- If this is set to a non-empty string it is equivalent to specifying
- the \fB\-d\fP option. If set to an integer, it is equivalent to
- specifying \fB\-d\fP multiple times.
- .IP PYTHONDONTWRITEBYTECODE
- If this is set to a non-empty string it is equivalent to specifying
- the \fB\-B\fP option (don't try to write
- .I .pyc
- files).
- .IP PYTHONINSPECT
- If this is set to a non-empty string it is equivalent to specifying
- the \fB\-i\fP option.
- .IP PYTHONIOENCODING
- If this is set before running the interpreter, it overrides the encoding used
- for stdin/stdout/stderr, in the syntax
- .IB encodingname ":" errorhandler
- The
- .IB errorhandler
- part is optional and has the same meaning as in str.encode. For stderr, the
- .IB errorhandler
- part is ignored; the handler will always be \'backslashreplace\'.
- .IP PYTHONNOUSERSITE
- If this is set to a non-empty string it is equivalent to specifying the
- \fB\-s\fP option (Don't add the user site directory to sys.path).
- .IP PYTHONUNBUFFERED
- If this is set to a non-empty string it is equivalent to specifying
- the \fB\-u\fP option.
- .IP PYTHONVERBOSE
- If this is set to a non-empty string it is equivalent to specifying
- the \fB\-v\fP option. If set to an integer, it is equivalent to
- specifying \fB\-v\fP multiple times.
- .IP PYTHONWARNINGS
- If this is set to a comma-separated string it is equivalent to
- specifying the \fB\-W\fP option for each separate value.
- .IP PYTHONHASHSEED
- If this variable is set to "random", a random value is used to seed the hashes
- of str and bytes objects.
- If PYTHONHASHSEED is set to an integer value, it is used as a fixed seed for
- generating the hash() of the types covered by the hash randomization. Its
- purpose is to allow repeatable hashing, such as for selftests for the
- interpreter itself, or to allow a cluster of python processes to share hash
- values.
- The integer must be a decimal number in the range [0,4294967295]. Specifying
- the value 0 will disable hash randomization.
- .IP PYTHONINTMAXSTRDIGITS
- Limit the maximum digit characters in an int value
- when converting from a string and when converting an int back to a str.
- A value of 0 disables the limit. Conversions to or from bases 2, 4, 8,
- 16, and 32 are never limited.
- .IP PYTHONMALLOC
- Set the Python memory allocators and/or install debug hooks. The available
- memory allocators are
- .IR malloc
- and
- .IR pymalloc .
- The available debug hooks are
- .IR debug ,
- .IR malloc_debug ,
- and
- .IR pymalloc_debug .
- .IP
- When Python is compiled in debug mode, the default is
- .IR pymalloc_debug
- and the debug hooks are automatically used. Otherwise, the default is
- .IR pymalloc .
- .IP PYTHONMALLOCSTATS
- If set to a non-empty string, Python will print statistics of the pymalloc
- memory allocator every time a new pymalloc object arena is created, and on
- shutdown.
- .IP
- This variable is ignored if the
- .RB $ PYTHONMALLOC
- environment variable is used to force the
- .BR malloc (3)
- allocator of the C library, or if Python is configured without pymalloc support.
- .IP PYTHONASYNCIODEBUG
- If this environment variable is set to a non-empty string, enable the debug
- mode of the asyncio module.
- .IP PYTHONTRACEMALLOC
- If this environment variable is set to a non-empty string, start tracing
- Python memory allocations using the tracemalloc module.
- .IP
- The value of the variable is the maximum number of frames stored in a
- traceback of a trace. For example,
- .IB PYTHONTRACEMALLOC=1
- stores only the most recent frame.
- .IP PYTHONFAULTHANDLER
- If this environment variable is set to a non-empty string,
- .IR faulthandler.enable()
- is called at startup: install a handler for SIGSEGV, SIGFPE, SIGABRT, SIGBUS
- and SIGILL signals to dump the Python traceback.
- .IP
- This is equivalent to the \fB-X faulthandler\fP option.
- .IP PYTHONEXECUTABLE
- If this environment variable is set,
- .IB sys.argv[0]
- will be set to its value instead of the value got through the C runtime. Only
- works on Mac OS X.
- .IP PYTHONUSERBASE
- Defines the user base directory, which is used to compute the path of the user
- .IR site-packages
- directory and Distutils installation paths for
- .IR "python setup\.py install \-\-user" .
- .IP PYTHONPROFILEIMPORTTIME
- If this environment variable is set to a non-empty string, Python will
- show how long each import takes. This is exactly equivalent to setting
- \fB\-X importtime\fP on the command line.
- .IP PYTHONBREAKPOINT
- If this environment variable is set to 0, it disables the default debugger. It
- can be set to the callable of your debugger of choice.
- .SS Debug-mode variables
- Setting these variables only has an effect in a debug build of Python, that is,
- if Python was configured with the
- \fB\--with-pydebug\fP build option.
- .IP PYTHONTHREADDEBUG
- If this environment variable is set, Python will print threading debug info.
- .IP PYTHONDUMPREFS
- If this environment variable is set, Python will dump objects and reference
- counts still alive after shutting down the interpreter.
- .SH AUTHOR
- The Python Software Foundation: https://www.python.org/psf/
- .SH INTERNET RESOURCES
- Main website: https://www.python.org/
- .br
- Documentation: https://docs.python.org/
- .br
- Developer resources: https://devguide.python.org/
- .br
- Downloads: https://www.python.org/downloads/
- .br
- Module repository: https://pypi.org/
- .br
- Newsgroups: comp.lang.python, comp.lang.python.announce
- .SH LICENSING
- Python is distributed under an Open Source license. See the file
- "LICENSE" in the Python source distribution for information on terms &
- conditions for accessing and otherwise using Python and for a
- DISCLAIMER OF ALL WARRANTIES.
|