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
195                  -X utf8: enable UTF-8 mode for operating system  interfaces,
196              overriding the default
197                      locale-aware  mode.  -X utf8=0 explicitly disables UTF-8
198              mode (even when it would
199                      otherwise activate automatically).  See  PYTHONUTF8  for
200              more details
201
202                  -X  int_max_str_digits=number:  limit  the size of int<->str
203              conversions.
204                     This helps avoid denial of service attacks  when  parsing
205              untrusted data.
206                     The  default  is  sys.int_info.default_max_str_digits.  0
207              disables.
208
209
210       -x     Skip the first line of the source.  This is intended for  a  DOS
211              specific hack only.  Warning: the line numbers in error messages
212              will be off by one!
213

INTERPRETER INTERFACE

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

FILES AND DIRECTORIES

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

ENVIRONMENT VARIABLES

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

AUTHOR

430       The Python Software Foundation: https://www.python.org/psf/
431

INTERNET RESOURCES

433       Main website:  https://www.python.org/
434       Documentation:  https://docs.python.org/
435       Developer resources:  https://devguide.python.org/
436       Downloads:  https://www.python.org/downloads/
437       Module repository:  https://pypi.org/
438       Newsgroups:  comp.lang.python, comp.lang.python.announce
439

LICENSING

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