1PYTHON(1)                   General Commands Manual                  PYTHON(1)
2
3
4

NAME

6       python  - an interpreted, interactive, object-oriented programming lan‐
7       guage
8

SYNOPSIS

10       python [ -B ] [ -b ] [ -d ] [ -E ] [ -h ] [ -i ] [ -I ]
11              [ -m module-name ] [ -q ] [ -O ] [ -OO ] [ -s ] [ -S ] [ -u ]
12              [ -v ] [ -V ] [ -W argument ] [ -x ] [ [ -X option ] -?  ]
13              [ --check-hash-based-pycs default | always | never ]
14              [ -c command | script | - ] [ arguments ]
15

DESCRIPTION

17       Python is an interpreted, interactive, object-oriented programming lan‐
18       guage  that  combines  remarkable power with very clear syntax.  For an
19       introduction to programming in Python, see the  Python  Tutorial.   The
20       Python  Library  Reference  documents built-in and standard types, con‐
21       stants, functions and modules.  Finally, the  Python  Reference  Manual
22       describes  the  syntax  and  semantics of the core language in (perhaps
23       too) much detail.  (These documents may be located via the INTERNET RE‐
24       SOURCES below; they may be installed on your system as well.)
25
26       Python's basic power can be extended with your own modules written in C
27       or C++.  On most  systems  such  modules  may  be  dynamically  loaded.
28       Python is also adaptable as an extension language for existing applica‐
29       tions.  See the internal documentation for hints.
30
31       Documentation for installed Python modules and packages can  be  viewed
32       by running the pydoc program.
33

COMMAND LINE OPTIONS

35       -B     Don't  write .pyc files on import. See also PYTHONDONTWRITEBYTE‐
36              CODE.
37
38       -b     Issue  warnings  about  str(bytes_instance),   str(bytearray_in‐
39              stance)  and comparing bytes/bytearray with str. (-bb: issue er‐
40              rors)
41
42       -c command
43              Specify the command to execute (see next section).  This  termi‐
44              nates the option list (following options are passed as arguments
45              to the command).
46
47       --check-hash-based-pycs mode
48              Configure how Python evaluates the up-to-dateness of  hash-based
49              .pyc files.
50
51       -d     Turn  on  parser debugging output (for expert only, depending on
52              compilation options).
53
54       -E     Ignore environment variables like PYTHONPATH and PYTHONHOME that
55              modify the behavior of the interpreter.
56
57       -h ,  -? ,  --help
58              Prints the usage for the interpreter executable and exits.
59
60       -i     When  a  script  is passed as first argument or the -c option is
61              used, enter interactive mode after executing the script  or  the
62              command.  It does not read the $PYTHONSTARTUP file.  This can be
63              useful to inspect global variables  or  a  stack  trace  when  a
64              script raises an exception.
65
66       -I     Run  Python  in  isolated  mode. This also implies -E and -s. In
67              isolated mode sys.path contains neither the  script's  directory
68              nor  the user's site-packages directory. All PYTHON* environment
69              variables are ignored, too.  Further restrictions may be imposed
70              to prevent the user from injecting malicious code.
71
72       -m module-name
73              Searches  sys.path for the named module and runs the correspond‐
74              ing .py file as a script.
75
76       -O     Remove assert statements and any code conditional on  the  value
77              of __debug__; augment the filename for compiled (bytecode) files
78              by adding .opt-1 before the .pyc extension.
79
80       -OO    Do -O and also discard docstrings; change the filename for  com‐
81              piled  (bytecode)  files by adding .opt-2 before the .pyc exten‐
82              sion.
83
84       -q     Do not print the version and copyright messages. These  messages
85              are also suppressed in non-interactive mode.
86
87       -s     Don't add user site directory to sys.path.
88
89       -S     Disable the import of the module site and the site-dependent ma‐
90              nipulations of sys.path that it entails.  Also disable these ma‐
91              nipulations if site is explicitly imported later.
92
93       -u     Force  the stdout and stderr streams to be unbuffered.  This op‐
94              tion has no effect on the stdin stream.
95
96       -v     Print a message each time a module is initialized,  showing  the
97              place  (filename  or  built-in  module) from which it is loaded.
98              When given twice, print a message for each file that is  checked
99              for  when  searching for a module.  Also provides information on
100              module cleanup at exit.
101
102       -V ,  --version
103              Prints the Python version number of the  executable  and  exits.
104              When given twice, print more information about the build.
105
106       -W argument
107              Warning  control.   Python  sometimes  prints warning message to
108              sys.stderr.  A typical warning message has the  following  form:
109              file:line:  category:  message.   By  default,  each  warning is
110              printed once for each source line where it occurs.  This  option
111              controls  how  often  warnings are printed.  Multiple -W options
112              may be given; when a warning matches more than one  option,  the
113              action  for  the  last matching option is performed.  Invalid -W
114              options are ignored (a warning message is printed about  invalid
115              options when the first warning is issued).  Warnings can also be
116              controlled from within a Python program using the warnings  mod‐
117              ule.
118
119              The  simplest  form  of  argument is one of the following action
120              strings (or a unique abbreviation): ignore to ignore  all  warn‐
121              ings; default to explicitly request the default behavior (print‐
122              ing each warning once per source line); all to print  a  warning
123              each  time it occurs (this may generate many messages if a warn‐
124              ing is triggered repeatedly for the same source  line,  such  as
125              inside a loop); module to print each warning only the first time
126              it occurs in each module; once to print each  warning  only  the
127              first time it occurs in the program; or error to raise an excep‐
128              tion instead of printing a warning message.
129
130              The  full  form  of  argument  is   action:message:category:mod‐
131              ule:line.   Here,  action is as explained above but only applies
132              to messages that match the remaining fields.  Empty fields match
133              all  values;  trailing empty fields may be omitted.  The message
134              field matches the start of the  warning  message  printed;  this
135              match is case-insensitive.  The category field matches the warn‐
136              ing category.  This must be a class name; the match test whether
137              the  actual warning category of the message is a subclass of the
138              specified warning category.  The full class name must be  given.
139              The module field matches the (fully-qualified) module name; this
140              match is case-sensitive.  The line field matches the  line  num‐
141              ber,  where zero matches all line numbers and is thus equivalent
142              to an omitted line number.
143
144       -X option
145              Set implementation specific option. The  following  options  are
146              available:
147
148                  -X faulthandler: enable faulthandler
149
150                  -X showrefcount: output the total reference count and number
151              of used
152                      memory blocks when the program finishes  or  after  each
153              statement in the
154                      interactive interpreter. This only works on debug builds
155
156                  -X  tracemalloc: start tracing Python memory allocations us‐
157              ing the
158                      tracemalloc module. By default,  only  the  most  recent
159              frame is stored in a
160                      traceback of a trace. Use -X tracemalloc=NFRAME to start
161              tracing with a
162                      traceback limit of NFRAME frames
163
164                  -X showalloccount: output the total count of  allocated  ob‐
165              jects for each
166                      type  when  the  program  finishes. This only works when
167              Python was built with
168                      COUNT_ALLOCS defined
169
170                  -X importtime: show how long each  import  takes.  It  shows
171              module name,
172                      cumulative time (including nested imports) and self time
173              (excluding
174                      nested imports). Note that its output may be  broken  in
175              multi-threaded
176                      application.  Typical  usage is python3 -X importtime -c
177              'import asyncio'
178
179                  -X dev: enable CPython's "development mode", introducing ad‐
180              ditional runtime
181                      checks which are too expensive to be enabled by default.
182              It will not be
183                      more verbose than the default if the  code  is  correct:
184              new warnings are
185                      only  emitted  when  an issue is detected. Effect of the
186              developer mode:
187                         * Add default warning filter, as -W default
188                         * Install debug hooks on memory allocators:  see  the
189              PyMem_SetupDebugHooks() C function
190                         *  Enable  the faulthandler module to dump the Python
191              traceback on a crash
192                         * Enable asyncio debug mode
193                         * Set the dev_mode attribute of sys.flags to True
194                         * io.IOBase destructor logs close() exceptions
195
196                  -X utf8: enable UTF-8 mode for operating system  interfaces,
197              overriding the default
198                      locale-aware  mode.  -X utf8=0 explicitly disables UTF-8
199              mode (even when it would
200                      otherwise activate automatically).  See  PYTHONUTF8  for
201              more details
202
203                  -X  pycache_prefix=PATH: enable writing .pyc files to a par‐
204              allel tree rooted at the
205                       given directory instead of to the code tree.
206
207                  -X int_max_str_digits=number: limit the  size  of  int<->str
208              conversions.
209                     This  helps  avoid denial of service attacks when parsing
210              untrusted data.
211                     The default  is  sys.int_info.default_max_str_digits.   0
212              disables.
213
214
215       -x     Skip  the  first line of the source.  This is intended for a DOS
216              specific hack only.  Warning: the line numbers in error messages
217              will be off by one!
218

INTERPRETER INTERFACE

220       The interpreter interface resembles that of the UNIX shell: when called
221       with standard input connected to a tty device, it prompts for  commands
222       and  executes  them  until an EOF is read; when called with a file name
223       argument or with a file as standard input,  it  reads  and  executes  a
224       script  from  that  file;  when called with -c command, it executes the
225       Python statement(s) given as command.  Here command may contain  multi‐
226       ple  statements  separated by newlines.  Leading whitespace is signifi‐
227       cant in Python statements!  In non-interactive mode, the  entire  input
228       is parsed before it is executed.
229
230       If  available,  the script name and additional arguments thereafter are
231       passed to the script in the Python variable sys.argv, which is  a  list
232       of  strings (you must first import sys to be able to access it).  If no
233       script name is given, sys.argv[0] is an empty string; if  -c  is  used,
234       sys.argv[0] contains the string '-c'.  Note that options interpreted by
235       the Python interpreter itself are not placed in sys.argv.
236
237       In interactive mode, the primary prompt is  `>>>';  the  second  prompt
238       (which  appears  when a command is not complete) is `...'.  The prompts
239       can be changed by assignment to sys.ps1 or  sys.ps2.   The  interpreter
240       quits  when  it  reads an EOF at a prompt.  When an unhandled exception
241       occurs, a stack trace is printed and control  returns  to  the  primary
242       prompt;  in  non-interactive mode, the interpreter exits after printing
243       the stack trace.  The interrupt signal raises the KeyboardInterrupt ex‐
244       ception;  other  UNIX  signals  are  not caught (except that SIGPIPE is
245       sometimes ignored, in favor of the IOError exception).  Error  messages
246       are written to stderr.
247

FILES AND DIRECTORIES

249       These are subject to difference depending on local installation conven‐
250       tions; ${prefix}  and  ${exec_prefix}  are  installation-dependent  and
251       should  be  interpreted as for GNU software; they may be the same.  The
252       default for both is /usr/local.
253
254       ${exec_prefix}/bin/python
255              Recommended location of the interpreter.
256
257       ${prefix}/lib/python<version>
258       ${exec_prefix}/lib/python<version>
259              Recommended locations of the directories containing the standard
260              modules.
261
262       ${prefix}/include/python<version>
263       ${exec_prefix}/include/python<version>
264              Recommended  locations of the directories containing the include
265              files needed for developing Python extensions and embedding  the
266              interpreter.
267

ENVIRONMENT VARIABLES

269       PYTHONHOME
270              Change  the  location  of the standard Python libraries.  By de‐
271              fault, the libraries are searched  in  ${prefix}/lib/python<ver‐
272              sion>  and  ${exec_prefix}/lib/python<version>,  where ${prefix}
273              and ${exec_prefix} are installation-dependent directories,  both
274              defaulting  to  /usr/local.  When $PYTHONHOME is set to a single
275              directory, its value replaces both ${prefix} and ${exec_prefix}.
276              To specify different values for these, set $PYTHONHOME to ${pre‐
277              fix}:${exec_prefix}.
278
279       PYTHONPATH
280              Augments the default search path for module files.   The  format
281              is  the  same  as the shell's $PATH: one or more directory path‐
282              names  separated  by  colons.   Non-existent   directories   are
283              silently  ignored.   The default search path is installation de‐
284              pendent, but generally begins with ${prefix}/lib/python<version>
285              (see  PYTHONHOME  above).  The default search path is always ap‐
286              pended to $PYTHONPATH.  If a script argument is given,  the  di‐
287              rectory  containing  the script is inserted in the path in front
288              of $PYTHONPATH.  The search path can be manipulated from  within
289              a Python program as the variable sys.path.
290
291       PYTHONSTARTUP
292              If  this  is the name of a readable file, the Python commands in
293              that file are executed before the first prompt is  displayed  in
294              interactive  mode.   The file is executed in the same name space
295              where interactive commands are executed so that objects  defined
296              or  imported  in it can be used without qualification in the in‐
297              teractive session.  You can also change the prompts sys.ps1  and
298              sys.ps2 in this file.
299
300       PYTHONOPTIMIZE
301              If  this is set to a non-empty string it is equivalent to speci‐
302              fying the -O option. If set to an integer, it is  equivalent  to
303              specifying -O multiple times.
304
305       PYTHONDEBUG
306              If  this is set to a non-empty string it is equivalent to speci‐
307              fying the -d option. If set to an integer, it is  equivalent  to
308              specifying -d multiple times.
309
310       PYTHONDONTWRITEBYTECODE
311              If  this is set to a non-empty string it is equivalent to speci‐
312              fying the -B option (don't try to write .pyc files).
313
314       PYTHONINSPECT
315              If this is set to a non-empty string it is equivalent to  speci‐
316              fying the -i option.
317
318       PYTHONIOENCODING
319              If  this is set before running the interpreter, it overrides the
320              encoding used for stdin/stdout/stderr, in the  syntax  encoding‐
321              name:errorhandler  The errorhandler part is optional and has the
322              same meaning as in str.encode. For stderr, the errorhandler
323               part is ignored; the handler will always be ´backslashreplace´.
324
325       PYTHONNOUSERSITE
326              If this is set to a non-empty string it is equivalent to  speci‐
327              fying  the  -s  option  (Don't  add  the  user site directory to
328              sys.path).
329
330       PYTHONUNBUFFERED
331              If this is set to a non-empty string it is equivalent to  speci‐
332              fying the -u option.
333
334       PYTHONVERBOSE
335              If  this is set to a non-empty string it is equivalent to speci‐
336              fying the -v option. If set to an integer, it is  equivalent  to
337              specifying -v multiple times.
338
339       PYTHONWARNINGS
340              If  this  is set to a comma-separated string it is equivalent to
341              specifying the -W option for each separate value.
342
343       PYTHONHASHSEED
344              If this variable is set to "random", a random value is  used  to
345              seed the hashes of str and bytes objects.
346
347              If  PYTHONHASHSEED  is  set to an integer value, it is used as a
348              fixed seed for generating the hash() of the types covered by the
349              hash randomization.  Its purpose is to allow repeatable hashing,
350              such as for selftests for the interpreter itself, or to allow  a
351              cluster of python processes to share hash values.
352
353              The   integer   must   be   a   decimal   number  in  the  range
354              [0,4294967295].  Specifying the value 0 will disable  hash  ran‐
355              domization.
356
357       PYTHONINTMAXSTRDIGITS
358              Limit the maximum digit characters in an int value when convert‐
359              ing from a string and when converting an int back to a  str.   A
360              value  of 0 disables the limit.  Conversions to or from bases 2,
361              4, 8, 16, and 32 are never limited.
362
363       PYTHONMALLOC
364              Set the Python memory allocators and/or install debug hooks. The
365              available memory allocators are malloc and pymalloc.  The avail‐
366              able debug hooks are debug, malloc_debug, and pymalloc_debug.
367
368              When Python is compiled in debug mode,  the  default  is  pymal‐
369              loc_debug and the debug hooks are automatically used. Otherwise,
370              the default is pymalloc.
371
372       PYTHONMALLOCSTATS
373              If set to a non-empty string, Python will  print  statistics  of
374              the  pymalloc  memory allocator every time a new pymalloc object
375              arena is created, and on shutdown.
376
377              This variable is ignored if the $PYTHONMALLOC environment  vari‐
378              able  is used to force the malloc(3) allocator of the C library,
379              or if Python is configured without pymalloc support.
380
381       PYTHONASYNCIODEBUG
382              If this environment variable is set to a non-empty  string,  en‐
383              able the debug mode of the asyncio module.
384
385       PYTHONTRACEMALLOC
386              If this environment variable is set to a non-empty string, start
387              tracing Python memory allocations using the tracemalloc module.
388
389              The value of the variable is the maximum number of frames stored
390              in  a  traceback  of  a  trace. For example, PYTHONTRACEMALLOC=1
391              stores only the most recent frame.
392
393       PYTHONFAULTHANDLER
394              If this environment variable  is  set  to  a  non-empty  string,
395              faulthandler.enable()  is  called  at startup: install a handler
396              for SIGSEGV, SIGFPE, SIGABRT, SIGBUS and SIGILL signals to  dump
397              the Python traceback.
398
399              This is equivalent to the -X faulthandler option.
400
401       PYTHONEXECUTABLE
402              If  this environment variable is set, sys.argv[0] will be set to
403              its value instead of the value got through the C  runtime.  Only
404              works on Mac OS X.
405
406       PYTHONUSERBASE
407              Defines  the  user  base directory, which is used to compute the
408              path of the user site-packages directory and Distutils installa‐
409              tion paths for python setup.py install --user.
410
411       PYTHONPROFILEIMPORTTIME
412              If  this  environment  variable  is  set  to a non-empty string,
413              Python will show how long each import  takes.  This  is  exactly
414              equivalent to setting -X importtime on the command line.
415
416       PYTHONBREAKPOINT
417              If  this  environment  variable is set to 0, it disables the de‐
418              fault debugger. It can be set to the callable of  your  debugger
419              of choice.
420
421   Debug-mode variables
422       Setting  these variables only has an effect in a debug build of Python,
423       that is, if Python was configured with the --with-pydebug build option.
424
425       PYTHONTHREADDEBUG
426              If this environment variable is set, Python will print threading
427              debug info.
428
429       PYTHONDUMPREFS
430              If  this  environment  variable is set, Python will dump objects
431              and reference counts still alive after shutting down the  inter‐
432              preter.
433

AUTHOR

435       The Python Software Foundation: https://www.python.org/psf/
436

INTERNET RESOURCES

438       Main website:  https://www.python.org/
439       Documentation:  https://docs.python.org/
440       Developer resources:  https://devguide.python.org/
441       Downloads:  https://www.python.org/downloads/
442       Module repository:  https://pypi.org/
443       Newsgroups:  comp.lang.python, comp.lang.python.announce
444

LICENSING

446       Python  is distributed under an Open Source license.  See the file "LI‐
447       CENSE" in the Python source distribution for  information  on  terms  &
448       conditions  for  accessing  and  otherwise  using Python and for a DIS‐
449       CLAIMER OF ALL WARRANTIES.
450
451
452
453                                                                     PYTHON(1)
Impressum