1PYTHON(1) General Commands Manual PYTHON(1)
2
3
4
6 python - an interpreted, interactive, object-oriented programming lan‐
7 guage
8
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
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
24 RESOURCES 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
35 -B Don't write .pyc files on import. See also PYTHONDONTWRITEBYTE‐
36 CODE.
37
38 -b Issue warnings about str(bytes_instance), str(bytear‐
39 ray_instance) and comparing bytes/bytearray with str. (-bb:
40 issue errors)
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
90 manipulations of sys.path that it entails. Also disable these
91 manipulations if site is explicitly imported later.
92
93 -u Force the stdout and stderr streams to be unbuffered. This
94 option 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.
146
147 -x Skip the first line of the source. This is intended for a DOS
148 specific hack only. Warning: the line numbers in error messages
149 will be off by one!
150
152 The interpreter interface resembles that of the UNIX shell: when called
153 with standard input connected to a tty device, it prompts for commands
154 and executes them until an EOF is read; when called with a file name
155 argument or with a file as standard input, it reads and executes a
156 script from that file; when called with -c command, it executes the
157 Python statement(s) given as command. Here command may contain multi‐
158 ple statements separated by newlines. Leading whitespace is signifi‐
159 cant in Python statements! In non-interactive mode, the entire input
160 is parsed before it is executed.
161
162 If available, the script name and additional arguments thereafter are
163 passed to the script in the Python variable sys.argv, which is a list
164 of strings (you must first import sys to be able to access it). If no
165 script name is given, sys.argv[0] is an empty string; if -c is used,
166 sys.argv[0] contains the string '-c'. Note that options interpreted by
167 the Python interpreter itself are not placed in sys.argv.
168
169 In interactive mode, the primary prompt is `>>>'; the second prompt
170 (which appears when a command is not complete) is `...'. The prompts
171 can be changed by assignment to sys.ps1 or sys.ps2. The interpreter
172 quits when it reads an EOF at a prompt. When an unhandled exception
173 occurs, a stack trace is printed and control returns to the primary
174 prompt; in non-interactive mode, the interpreter exits after printing
175 the stack trace. The interrupt signal raises the KeyboardInterrupt
176 exception; other UNIX signals are not caught (except that SIGPIPE is
177 sometimes ignored, in favor of the IOError exception). Error messages
178 are written to stderr.
179
181 These are subject to difference depending on local installation conven‐
182 tions; ${prefix} and ${exec_prefix} are installation-dependent and
183 should be interpreted as for GNU software; they may be the same. The
184 default for both is /usr/local.
185
186 ${exec_prefix}/bin/python
187 Recommended location of the interpreter.
188
189 ${prefix}/lib/python<version>
190 ${exec_prefix}/lib/python<version>
191 Recommended locations of the directories containing the standard
192 modules.
193
194 ${prefix}/include/python<version>
195 ${exec_prefix}/include/python<version>
196 Recommended locations of the directories containing the include
197 files needed for developing Python extensions and embedding the
198 interpreter.
199
201 PYTHONHOME
202 Change the location of the standard Python libraries. By
203 default, the libraries are searched in ${prefix}/lib/python<ver‐
204 sion> and ${exec_prefix}/lib/python<version>, where ${prefix}
205 and ${exec_prefix} are installation-dependent directories, both
206 defaulting to /usr/local. When $PYTHONHOME is set to a single
207 directory, its value replaces both ${prefix} and ${exec_prefix}.
208 To specify different values for these, set $PYTHONHOME to ${pre‐
209 fix}:${exec_prefix}.
210
211 PYTHONPATH
212 Augments the default search path for module files. The format
213 is the same as the shell's $PATH: one or more directory path‐
214 names separated by colons. Non-existent directories are
215 silently ignored. The default search path is installation
216 dependent, but generally begins with ${prefix}/lib/python<ver‐
217 sion> (see PYTHONHOME above). The default search path is always
218 appended to $PYTHONPATH. If a script argument is given, the
219 directory containing the script is inserted in the path in front
220 of $PYTHONPATH. The search path can be manipulated from within
221 a Python program as the variable sys.path.
222
223 PYTHONSTARTUP
224 If this is the name of a readable file, the Python commands in
225 that file are executed before the first prompt is displayed in
226 interactive mode. The file is executed in the same name space
227 where interactive commands are executed so that objects defined
228 or imported in it can be used without qualification in the
229 interactive session. You can also change the prompts sys.ps1
230 and sys.ps2 in this file.
231
232 PYTHONOPTIMIZE
233 If this is set to a non-empty string it is equivalent to speci‐
234 fying the -O option. If set to an integer, it is equivalent to
235 specifying -O multiple times.
236
237 PYTHONDEBUG
238 If this is set to a non-empty string it is equivalent to speci‐
239 fying the -d option. If set to an integer, it is equivalent to
240 specifying -d multiple times.
241
242 PYTHONDONTWRITEBYTECODE
243 If this is set to a non-empty string it is equivalent to speci‐
244 fying the -B option (don't try to write .pyc files).
245
246 PYTHONINSPECT
247 If this is set to a non-empty string it is equivalent to speci‐
248 fying the -i option.
249
250 PYTHONIOENCODING
251 If this is set before running the interpreter, it overrides the
252 encoding used for stdin/stdout/stderr, in the syntax encoding‐
253 name:errorhandler The errorhandler part is optional and has the
254 same meaning as in str.encode. For stderr, the errorhandler
255 part is ignored; the handler will always be ´backslashreplace´.
256
257 PYTHONNOUSERSITE
258 If this is set to a non-empty string it is equivalent to speci‐
259 fying the -s option (Don't add the user site directory to
260 sys.path).
261
262 PYTHONUNBUFFERED
263 If this is set to a non-empty string it is equivalent to speci‐
264 fying the -u option.
265
266 PYTHONVERBOSE
267 If this is set to a non-empty string it is equivalent to speci‐
268 fying the -v option. If set to an integer, it is equivalent to
269 specifying -v multiple times.
270
271 PYTHONWARNINGS
272 If this is set to a comma-separated string it is equivalent to
273 specifying the -W option for each separate value.
274
275 PYTHONHASHSEED
276 If this variable is set to "random", a random value is used to
277 seed the hashes of str and bytes objects.
278
279 If PYTHONHASHSEED is set to an integer value, it is used as a
280 fixed seed for generating the hash() of the types covered by the
281 hash randomization. Its purpose is to allow repeatable hashing,
282 such as for selftests for the interpreter itself, or to allow a
283 cluster of python processes to share hash values.
284
285 The integer must be a decimal number in the range
286 [0,4294967295]. Specifying the value 0 will disable hash ran‐
287 domization.
288
289 PYTHONMALLOC
290 Set the Python memory allocators and/or install debug hooks. The
291 available memory allocators are malloc and pymalloc. The avail‐
292 able debug hooks are debug, malloc_debug, and pymalloc_debug.
293
294 When Python is compiled in debug mode, the default is pymal‐
295 loc_debug and the debug hooks are automatically used. Otherwise,
296 the default is pymalloc.
297
298 PYTHONMALLOCSTATS
299 If set to a non-empty string, Python will print statistics of
300 the pymalloc memory allocator every time a new pymalloc object
301 arena is created, and on shutdown.
302
303 This variable is ignored if the $PYTHONMALLOC environment vari‐
304 able is used to force the malloc(3) allocator of the C library,
305 or if Python is configured without pymalloc support.
306
307 PYTHONASYNCIODEBUG
308 If this environment variable is set to a non-empty string,
309 enable the debug mode of the asyncio module.
310
311 PYTHONTRACEMALLOC
312 If this environment variable is set to a non-empty string, start
313 tracing Python memory allocations using the tracemalloc module.
314
315 The value of the variable is the maximum number of frames stored
316 in a traceback of a trace. For example, PYTHONTRACEMALLOC=1
317 stores only the most recent frame.
318
319 PYTHONFAULTHANDLER
320 If this environment variable is set to a non-empty string,
321 faulthandler.enable() is called at startup: install a handler
322 for SIGSEGV, SIGFPE, SIGABRT, SIGBUS and SIGILL signals to dump
323 the Python traceback.
324
325 This is equivalent to the -X faulthandler option.
326
327 PYTHONEXECUTABLE
328 If this environment variable is set, sys.argv[0] will be set to
329 its value instead of the value got through the C runtime. Only
330 works on Mac OS X.
331
332 PYTHONUSERBASE
333 Defines the user base directory, which is used to compute the
334 path of the user site-packages directory and Distutils installa‐
335 tion paths for python setup.py install --user.
336
337 PYTHONPROFILEIMPORTTIME
338 If this environment variable is set to a non-empty string,
339 Python will show how long each import takes. This is exactly
340 equivalent to setting -X importtime on the command line.
341
342 PYTHONBREAKPOINT
343 If this environment variable is set to 0, it disables the
344 default debugger. It can be set to the callable of your debugger
345 of choice.
346
347 Debug-mode variables
348 Setting these variables only has an effect in a debug build of Python,
349 that is, if Python was configured with the --with-pydebug build option.
350
351 PYTHONTHREADDEBUG
352 If this environment variable is set, Python will print threading
353 debug info.
354
355 PYTHONDUMPREFS
356 If this environment variable is set, Python will dump objects
357 and reference counts still alive after shutting down the inter‐
358 preter.
359
361 The Python Software Foundation: https://www.python.org/psf/
362
364 Main website: https://www.python.org/
365 Documentation: https://docs.python.org/
366 Developer resources: https://devguide.python.org/
367 Downloads: https://www.python.org/downloads/
368 Module repository: https://pypi.org/
369 Newsgroups: comp.lang.python, comp.lang.python.announce
370
372 Python is distributed under an Open Source license. See the file
373 "LICENSE" in the Python source distribution for information on terms &
374 conditions for accessing and otherwise using Python and for a DIS‐
375 CLAIMER OF ALL WARRANTIES.
376
377
378
379 PYTHON(1)