17db96d56Sopenharmony_ci.. highlight:: sh 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci.. ATTENTION: You probably should update Misc/python.man, too, if you modify 47db96d56Sopenharmony_ci this file. 57db96d56Sopenharmony_ci 67db96d56Sopenharmony_ci.. _using-on-general: 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_ciCommand line and environment 97db96d56Sopenharmony_ci============================ 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ciThe CPython interpreter scans the command line and the environment for various 127db96d56Sopenharmony_cisettings. 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ci.. impl-detail:: 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_ci Other implementations' command line schemes may differ. See 177db96d56Sopenharmony_ci :ref:`implementations` for further resources. 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ci.. _using-on-cmdline: 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_ciCommand line 237db96d56Sopenharmony_ci------------ 247db96d56Sopenharmony_ci 257db96d56Sopenharmony_ciWhen invoking Python, you may specify any of these options:: 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ci python [-bBdEhiIOqsSuvVWx?] [-c command | -m module-name | script | - ] [args] 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ciThe most common use case is, of course, a simple invocation of a script:: 307db96d56Sopenharmony_ci 317db96d56Sopenharmony_ci python myscript.py 327db96d56Sopenharmony_ci 337db96d56Sopenharmony_ci 347db96d56Sopenharmony_ci.. _using-on-interface-options: 357db96d56Sopenharmony_ci 367db96d56Sopenharmony_ciInterface options 377db96d56Sopenharmony_ci~~~~~~~~~~~~~~~~~ 387db96d56Sopenharmony_ci 397db96d56Sopenharmony_ciThe interpreter interface resembles that of the UNIX shell, but provides some 407db96d56Sopenharmony_ciadditional methods of invocation: 417db96d56Sopenharmony_ci 427db96d56Sopenharmony_ci* When called with standard input connected to a tty device, it prompts for 437db96d56Sopenharmony_ci commands and executes them until an EOF (an end-of-file character, you can 447db96d56Sopenharmony_ci produce that with :kbd:`Ctrl-D` on UNIX or :kbd:`Ctrl-Z, Enter` on Windows) is read. 457db96d56Sopenharmony_ci* When called with a file name argument or with a file as standard input, it 467db96d56Sopenharmony_ci reads and executes a script from that file. 477db96d56Sopenharmony_ci* When called with a directory name argument, it reads and executes an 487db96d56Sopenharmony_ci appropriately named script from that directory. 497db96d56Sopenharmony_ci* When called with ``-c command``, it executes the Python statement(s) given as 507db96d56Sopenharmony_ci *command*. Here *command* may contain multiple statements separated by 517db96d56Sopenharmony_ci newlines. Leading whitespace is significant in Python statements! 527db96d56Sopenharmony_ci* When called with ``-m module-name``, the given module is located on the 537db96d56Sopenharmony_ci Python module path and executed as a script. 547db96d56Sopenharmony_ci 557db96d56Sopenharmony_ciIn non-interactive mode, the entire input is parsed before it is executed. 567db96d56Sopenharmony_ci 577db96d56Sopenharmony_ciAn interface option terminates the list of options consumed by the interpreter, 587db96d56Sopenharmony_ciall consecutive arguments will end up in :data:`sys.argv` -- note that the first 597db96d56Sopenharmony_cielement, subscript zero (``sys.argv[0]``), is a string reflecting the program's 607db96d56Sopenharmony_cisource. 617db96d56Sopenharmony_ci 627db96d56Sopenharmony_ci.. cmdoption:: -c <command> 637db96d56Sopenharmony_ci 647db96d56Sopenharmony_ci Execute the Python code in *command*. *command* can be one or more 657db96d56Sopenharmony_ci statements separated by newlines, with significant leading whitespace as in 667db96d56Sopenharmony_ci normal module code. 677db96d56Sopenharmony_ci 687db96d56Sopenharmony_ci If this option is given, the first element of :data:`sys.argv` will be 697db96d56Sopenharmony_ci ``"-c"`` and the current directory will be added to the start of 707db96d56Sopenharmony_ci :data:`sys.path` (allowing modules in that directory to be imported as top 717db96d56Sopenharmony_ci level modules). 727db96d56Sopenharmony_ci 737db96d56Sopenharmony_ci .. audit-event:: cpython.run_command command cmdoption-c 747db96d56Sopenharmony_ci 757db96d56Sopenharmony_ci.. cmdoption:: -m <module-name> 767db96d56Sopenharmony_ci 777db96d56Sopenharmony_ci Search :data:`sys.path` for the named module and execute its contents as 787db96d56Sopenharmony_ci the :mod:`__main__` module. 797db96d56Sopenharmony_ci 807db96d56Sopenharmony_ci Since the argument is a *module* name, you must not give a file extension 817db96d56Sopenharmony_ci (``.py``). The module name should be a valid absolute Python module name, but 827db96d56Sopenharmony_ci the implementation may not always enforce this (e.g. it may allow you to 837db96d56Sopenharmony_ci use a name that includes a hyphen). 847db96d56Sopenharmony_ci 857db96d56Sopenharmony_ci Package names (including namespace packages) are also permitted. When a 867db96d56Sopenharmony_ci package name is supplied instead 877db96d56Sopenharmony_ci of a normal module, the interpreter will execute ``<pkg>.__main__`` as 887db96d56Sopenharmony_ci the main module. This behaviour is deliberately similar to the handling 897db96d56Sopenharmony_ci of directories and zipfiles that are passed to the interpreter as the 907db96d56Sopenharmony_ci script argument. 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_ci .. note:: 937db96d56Sopenharmony_ci 947db96d56Sopenharmony_ci This option cannot be used with built-in modules and extension modules 957db96d56Sopenharmony_ci written in C, since they do not have Python module files. However, it 967db96d56Sopenharmony_ci can still be used for precompiled modules, even if the original source 977db96d56Sopenharmony_ci file is not available. 987db96d56Sopenharmony_ci 997db96d56Sopenharmony_ci If this option is given, the first element of :data:`sys.argv` will be the 1007db96d56Sopenharmony_ci full path to the module file (while the module file is being located, the 1017db96d56Sopenharmony_ci first element will be set to ``"-m"``). As with the :option:`-c` option, 1027db96d56Sopenharmony_ci the current directory will be added to the start of :data:`sys.path`. 1037db96d56Sopenharmony_ci 1047db96d56Sopenharmony_ci :option:`-I` option can be used to run the script in isolated mode where 1057db96d56Sopenharmony_ci :data:`sys.path` contains neither the current directory nor the user's 1067db96d56Sopenharmony_ci site-packages directory. All :envvar:`PYTHON*` environment variables are 1077db96d56Sopenharmony_ci ignored, too. 1087db96d56Sopenharmony_ci 1097db96d56Sopenharmony_ci Many standard library modules contain code that is invoked on their execution 1107db96d56Sopenharmony_ci as a script. An example is the :mod:`timeit` module:: 1117db96d56Sopenharmony_ci 1127db96d56Sopenharmony_ci python -m timeit -s 'setup here' 'benchmarked code here' 1137db96d56Sopenharmony_ci python -m timeit -h # for details 1147db96d56Sopenharmony_ci 1157db96d56Sopenharmony_ci .. audit-event:: cpython.run_module module-name cmdoption-m 1167db96d56Sopenharmony_ci 1177db96d56Sopenharmony_ci .. seealso:: 1187db96d56Sopenharmony_ci :func:`runpy.run_module` 1197db96d56Sopenharmony_ci Equivalent functionality directly available to Python code 1207db96d56Sopenharmony_ci 1217db96d56Sopenharmony_ci :pep:`338` -- Executing modules as scripts 1227db96d56Sopenharmony_ci 1237db96d56Sopenharmony_ci .. versionchanged:: 3.1 1247db96d56Sopenharmony_ci Supply the package name to run a ``__main__`` submodule. 1257db96d56Sopenharmony_ci 1267db96d56Sopenharmony_ci .. versionchanged:: 3.4 1277db96d56Sopenharmony_ci namespace packages are also supported 1287db96d56Sopenharmony_ci 1297db96d56Sopenharmony_ci.. _cmdarg-dash: 1307db96d56Sopenharmony_ci 1317db96d56Sopenharmony_ci.. describe:: - 1327db96d56Sopenharmony_ci 1337db96d56Sopenharmony_ci Read commands from standard input (:data:`sys.stdin`). If standard input is 1347db96d56Sopenharmony_ci a terminal, :option:`-i` is implied. 1357db96d56Sopenharmony_ci 1367db96d56Sopenharmony_ci If this option is given, the first element of :data:`sys.argv` will be 1377db96d56Sopenharmony_ci ``"-"`` and the current directory will be added to the start of 1387db96d56Sopenharmony_ci :data:`sys.path`. 1397db96d56Sopenharmony_ci 1407db96d56Sopenharmony_ci .. audit-event:: cpython.run_stdin "" "" 1417db96d56Sopenharmony_ci 1427db96d56Sopenharmony_ci.. _cmdarg-script: 1437db96d56Sopenharmony_ci 1447db96d56Sopenharmony_ci.. describe:: <script> 1457db96d56Sopenharmony_ci 1467db96d56Sopenharmony_ci Execute the Python code contained in *script*, which must be a filesystem 1477db96d56Sopenharmony_ci path (absolute or relative) referring to either a Python file, a directory 1487db96d56Sopenharmony_ci containing a ``__main__.py`` file, or a zipfile containing a 1497db96d56Sopenharmony_ci ``__main__.py`` file. 1507db96d56Sopenharmony_ci 1517db96d56Sopenharmony_ci If this option is given, the first element of :data:`sys.argv` will be the 1527db96d56Sopenharmony_ci script name as given on the command line. 1537db96d56Sopenharmony_ci 1547db96d56Sopenharmony_ci If the script name refers directly to a Python file, the directory 1557db96d56Sopenharmony_ci containing that file is added to the start of :data:`sys.path`, and the 1567db96d56Sopenharmony_ci file is executed as the :mod:`__main__` module. 1577db96d56Sopenharmony_ci 1587db96d56Sopenharmony_ci If the script name refers to a directory or zipfile, the script name is 1597db96d56Sopenharmony_ci added to the start of :data:`sys.path` and the ``__main__.py`` file in 1607db96d56Sopenharmony_ci that location is executed as the :mod:`__main__` module. 1617db96d56Sopenharmony_ci 1627db96d56Sopenharmony_ci :option:`-I` option can be used to run the script in isolated mode where 1637db96d56Sopenharmony_ci :data:`sys.path` contains neither the script's directory nor the user's 1647db96d56Sopenharmony_ci site-packages directory. All :envvar:`PYTHON*` environment variables are 1657db96d56Sopenharmony_ci ignored, too. 1667db96d56Sopenharmony_ci 1677db96d56Sopenharmony_ci .. audit-event:: cpython.run_file filename 1687db96d56Sopenharmony_ci 1697db96d56Sopenharmony_ci .. seealso:: 1707db96d56Sopenharmony_ci :func:`runpy.run_path` 1717db96d56Sopenharmony_ci Equivalent functionality directly available to Python code 1727db96d56Sopenharmony_ci 1737db96d56Sopenharmony_ci 1747db96d56Sopenharmony_ciIf no interface option is given, :option:`-i` is implied, ``sys.argv[0]`` is 1757db96d56Sopenharmony_cian empty string (``""``) and the current directory will be added to the 1767db96d56Sopenharmony_cistart of :data:`sys.path`. Also, tab-completion and history editing is 1777db96d56Sopenharmony_ciautomatically enabled, if available on your platform (see 1787db96d56Sopenharmony_ci:ref:`rlcompleter-config`). 1797db96d56Sopenharmony_ci 1807db96d56Sopenharmony_ci.. seealso:: :ref:`tut-invoking` 1817db96d56Sopenharmony_ci 1827db96d56Sopenharmony_ci.. versionchanged:: 3.4 1837db96d56Sopenharmony_ci Automatic enabling of tab-completion and history editing. 1847db96d56Sopenharmony_ci 1857db96d56Sopenharmony_ci 1867db96d56Sopenharmony_ci.. _using-on-generic-options: 1877db96d56Sopenharmony_ci 1887db96d56Sopenharmony_ciGeneric options 1897db96d56Sopenharmony_ci~~~~~~~~~~~~~~~ 1907db96d56Sopenharmony_ci 1917db96d56Sopenharmony_ci.. cmdoption:: -? 1927db96d56Sopenharmony_ci -h 1937db96d56Sopenharmony_ci --help 1947db96d56Sopenharmony_ci 1957db96d56Sopenharmony_ci Print a short description of all command line options and corresponding 1967db96d56Sopenharmony_ci environment variables and exit. 1977db96d56Sopenharmony_ci 1987db96d56Sopenharmony_ci.. cmdoption:: --help-env 1997db96d56Sopenharmony_ci 2007db96d56Sopenharmony_ci Print a short description of Python-specific environment variables 2017db96d56Sopenharmony_ci and exit. 2027db96d56Sopenharmony_ci 2037db96d56Sopenharmony_ci .. versionadded:: 3.11 2047db96d56Sopenharmony_ci 2057db96d56Sopenharmony_ci.. cmdoption:: --help-xoptions 2067db96d56Sopenharmony_ci 2077db96d56Sopenharmony_ci Print a description of implementation-specific :option:`-X` options 2087db96d56Sopenharmony_ci and exit. 2097db96d56Sopenharmony_ci 2107db96d56Sopenharmony_ci .. versionadded:: 3.11 2117db96d56Sopenharmony_ci 2127db96d56Sopenharmony_ci.. cmdoption:: --help-all 2137db96d56Sopenharmony_ci 2147db96d56Sopenharmony_ci Print complete usage information and exit. 2157db96d56Sopenharmony_ci 2167db96d56Sopenharmony_ci .. versionadded:: 3.11 2177db96d56Sopenharmony_ci 2187db96d56Sopenharmony_ci.. cmdoption:: -V 2197db96d56Sopenharmony_ci --version 2207db96d56Sopenharmony_ci 2217db96d56Sopenharmony_ci Print the Python version number and exit. Example output could be: 2227db96d56Sopenharmony_ci 2237db96d56Sopenharmony_ci .. code-block:: none 2247db96d56Sopenharmony_ci 2257db96d56Sopenharmony_ci Python 3.8.0b2+ 2267db96d56Sopenharmony_ci 2277db96d56Sopenharmony_ci When given twice, print more information about the build, like: 2287db96d56Sopenharmony_ci 2297db96d56Sopenharmony_ci .. code-block:: none 2307db96d56Sopenharmony_ci 2317db96d56Sopenharmony_ci Python 3.8.0b2+ (3.8:0c076caaa8, Apr 20 2019, 21:55:00) 2327db96d56Sopenharmony_ci [GCC 6.2.0 20161005] 2337db96d56Sopenharmony_ci 2347db96d56Sopenharmony_ci .. versionadded:: 3.6 2357db96d56Sopenharmony_ci The ``-VV`` option. 2367db96d56Sopenharmony_ci 2377db96d56Sopenharmony_ci 2387db96d56Sopenharmony_ci.. _using-on-misc-options: 2397db96d56Sopenharmony_ci 2407db96d56Sopenharmony_ciMiscellaneous options 2417db96d56Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~ 2427db96d56Sopenharmony_ci 2437db96d56Sopenharmony_ci.. cmdoption:: -b 2447db96d56Sopenharmony_ci 2457db96d56Sopenharmony_ci Issue a warning when comparing :class:`bytes` or :class:`bytearray` with 2467db96d56Sopenharmony_ci :class:`str` or :class:`bytes` with :class:`int`. Issue an error when the 2477db96d56Sopenharmony_ci option is given twice (:option:`!-bb`). 2487db96d56Sopenharmony_ci 2497db96d56Sopenharmony_ci .. versionchanged:: 3.5 2507db96d56Sopenharmony_ci Affects comparisons of :class:`bytes` with :class:`int`. 2517db96d56Sopenharmony_ci 2527db96d56Sopenharmony_ci.. cmdoption:: -B 2537db96d56Sopenharmony_ci 2547db96d56Sopenharmony_ci If given, Python won't try to write ``.pyc`` files on the 2557db96d56Sopenharmony_ci import of source modules. See also :envvar:`PYTHONDONTWRITEBYTECODE`. 2567db96d56Sopenharmony_ci 2577db96d56Sopenharmony_ci 2587db96d56Sopenharmony_ci.. cmdoption:: --check-hash-based-pycs default|always|never 2597db96d56Sopenharmony_ci 2607db96d56Sopenharmony_ci Control the validation behavior of hash-based ``.pyc`` files. See 2617db96d56Sopenharmony_ci :ref:`pyc-invalidation`. When set to ``default``, checked and unchecked 2627db96d56Sopenharmony_ci hash-based bytecode cache files are validated according to their default 2637db96d56Sopenharmony_ci semantics. When set to ``always``, all hash-based ``.pyc`` files, whether 2647db96d56Sopenharmony_ci checked or unchecked, are validated against their corresponding source 2657db96d56Sopenharmony_ci file. When set to ``never``, hash-based ``.pyc`` files are not validated 2667db96d56Sopenharmony_ci against their corresponding source files. 2677db96d56Sopenharmony_ci 2687db96d56Sopenharmony_ci The semantics of timestamp-based ``.pyc`` files are unaffected by this 2697db96d56Sopenharmony_ci option. 2707db96d56Sopenharmony_ci 2717db96d56Sopenharmony_ci 2727db96d56Sopenharmony_ci.. cmdoption:: -d 2737db96d56Sopenharmony_ci 2747db96d56Sopenharmony_ci Turn on parser debugging output (for expert only, depending on compilation 2757db96d56Sopenharmony_ci options). See also :envvar:`PYTHONDEBUG`. 2767db96d56Sopenharmony_ci 2777db96d56Sopenharmony_ci 2787db96d56Sopenharmony_ci.. cmdoption:: -E 2797db96d56Sopenharmony_ci 2807db96d56Sopenharmony_ci Ignore all :envvar:`PYTHON*` environment variables, e.g. 2817db96d56Sopenharmony_ci :envvar:`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set. 2827db96d56Sopenharmony_ci 2837db96d56Sopenharmony_ci See also the :option:`-P` and :option:`-I` (isolated) options. 2847db96d56Sopenharmony_ci 2857db96d56Sopenharmony_ci 2867db96d56Sopenharmony_ci.. cmdoption:: -i 2877db96d56Sopenharmony_ci 2887db96d56Sopenharmony_ci When a script is passed as first argument or the :option:`-c` option is used, 2897db96d56Sopenharmony_ci enter interactive mode after executing the script or the command, even when 2907db96d56Sopenharmony_ci :data:`sys.stdin` does not appear to be a terminal. The 2917db96d56Sopenharmony_ci :envvar:`PYTHONSTARTUP` file is not read. 2927db96d56Sopenharmony_ci 2937db96d56Sopenharmony_ci This can be useful to inspect global variables or a stack trace when a script 2947db96d56Sopenharmony_ci raises an exception. See also :envvar:`PYTHONINSPECT`. 2957db96d56Sopenharmony_ci 2967db96d56Sopenharmony_ci 2977db96d56Sopenharmony_ci.. cmdoption:: -I 2987db96d56Sopenharmony_ci 2997db96d56Sopenharmony_ci Run Python in isolated mode. This also implies :option:`-E`, :option:`-P` 3007db96d56Sopenharmony_ci and :option:`-s` options. 3017db96d56Sopenharmony_ci 3027db96d56Sopenharmony_ci In isolated mode :data:`sys.path` contains neither the script's directory nor 3037db96d56Sopenharmony_ci the user's site-packages directory. All :envvar:`PYTHON*` environment 3047db96d56Sopenharmony_ci variables are ignored, too. Further restrictions may be imposed to prevent 3057db96d56Sopenharmony_ci the user from injecting malicious code. 3067db96d56Sopenharmony_ci 3077db96d56Sopenharmony_ci .. versionadded:: 3.4 3087db96d56Sopenharmony_ci 3097db96d56Sopenharmony_ci 3107db96d56Sopenharmony_ci.. cmdoption:: -O 3117db96d56Sopenharmony_ci 3127db96d56Sopenharmony_ci Remove assert statements and any code conditional on the value of 3137db96d56Sopenharmony_ci :const:`__debug__`. Augment the filename for compiled 3147db96d56Sopenharmony_ci (:term:`bytecode`) files by adding ``.opt-1`` before the ``.pyc`` 3157db96d56Sopenharmony_ci extension (see :pep:`488`). See also :envvar:`PYTHONOPTIMIZE`. 3167db96d56Sopenharmony_ci 3177db96d56Sopenharmony_ci .. versionchanged:: 3.5 3187db96d56Sopenharmony_ci Modify ``.pyc`` filenames according to :pep:`488`. 3197db96d56Sopenharmony_ci 3207db96d56Sopenharmony_ci 3217db96d56Sopenharmony_ci.. cmdoption:: -OO 3227db96d56Sopenharmony_ci 3237db96d56Sopenharmony_ci Do :option:`-O` and also discard docstrings. Augment the filename 3247db96d56Sopenharmony_ci for compiled (:term:`bytecode`) files by adding ``.opt-2`` before the 3257db96d56Sopenharmony_ci ``.pyc`` extension (see :pep:`488`). 3267db96d56Sopenharmony_ci 3277db96d56Sopenharmony_ci .. versionchanged:: 3.5 3287db96d56Sopenharmony_ci Modify ``.pyc`` filenames according to :pep:`488`. 3297db96d56Sopenharmony_ci 3307db96d56Sopenharmony_ci 3317db96d56Sopenharmony_ci.. cmdoption:: -P 3327db96d56Sopenharmony_ci 3337db96d56Sopenharmony_ci Don't prepend a potentially unsafe path to :data:`sys.path`: 3347db96d56Sopenharmony_ci 3357db96d56Sopenharmony_ci * ``python -m module`` command line: Don't prepend the current working 3367db96d56Sopenharmony_ci directory. 3377db96d56Sopenharmony_ci * ``python script.py`` command line: Don't prepend the script's directory. 3387db96d56Sopenharmony_ci If it's a symbolic link, resolve symbolic links. 3397db96d56Sopenharmony_ci * ``python -c code`` and ``python`` (REPL) command lines: Don't prepend an 3407db96d56Sopenharmony_ci empty string, which means the current working directory. 3417db96d56Sopenharmony_ci 3427db96d56Sopenharmony_ci See also the :envvar:`PYTHONSAFEPATH` environment variable, and :option:`-E` 3437db96d56Sopenharmony_ci and :option:`-I` (isolated) options. 3447db96d56Sopenharmony_ci 3457db96d56Sopenharmony_ci .. versionadded:: 3.11 3467db96d56Sopenharmony_ci 3477db96d56Sopenharmony_ci 3487db96d56Sopenharmony_ci.. cmdoption:: -q 3497db96d56Sopenharmony_ci 3507db96d56Sopenharmony_ci Don't display the copyright and version messages even in interactive mode. 3517db96d56Sopenharmony_ci 3527db96d56Sopenharmony_ci .. versionadded:: 3.2 3537db96d56Sopenharmony_ci 3547db96d56Sopenharmony_ci 3557db96d56Sopenharmony_ci.. cmdoption:: -R 3567db96d56Sopenharmony_ci 3577db96d56Sopenharmony_ci Turn on hash randomization. This option only has an effect if the 3587db96d56Sopenharmony_ci :envvar:`PYTHONHASHSEED` environment variable is set to ``0``, since hash 3597db96d56Sopenharmony_ci randomization is enabled by default. 3607db96d56Sopenharmony_ci 3617db96d56Sopenharmony_ci On previous versions of Python, this option turns on hash randomization, 3627db96d56Sopenharmony_ci so that the :meth:`__hash__` values of str and bytes objects 3637db96d56Sopenharmony_ci are "salted" with an unpredictable random value. Although they remain 3647db96d56Sopenharmony_ci constant within an individual Python process, they are not predictable 3657db96d56Sopenharmony_ci between repeated invocations of Python. 3667db96d56Sopenharmony_ci 3677db96d56Sopenharmony_ci Hash randomization is intended to provide protection against a 3687db96d56Sopenharmony_ci denial-of-service caused by carefully chosen inputs that exploit the worst 3697db96d56Sopenharmony_ci case performance of a dict construction, O(n\ :sup:`2`) complexity. See 3707db96d56Sopenharmony_ci http://ocert.org/advisories/ocert-2011-003.html for details. 3717db96d56Sopenharmony_ci 3727db96d56Sopenharmony_ci :envvar:`PYTHONHASHSEED` allows you to set a fixed value for the hash 3737db96d56Sopenharmony_ci seed secret. 3747db96d56Sopenharmony_ci 3757db96d56Sopenharmony_ci .. versionchanged:: 3.7 3767db96d56Sopenharmony_ci The option is no longer ignored. 3777db96d56Sopenharmony_ci 3787db96d56Sopenharmony_ci .. versionadded:: 3.2.3 3797db96d56Sopenharmony_ci 3807db96d56Sopenharmony_ci 3817db96d56Sopenharmony_ci.. cmdoption:: -s 3827db96d56Sopenharmony_ci 3837db96d56Sopenharmony_ci Don't add the :data:`user site-packages directory <site.USER_SITE>` to 3847db96d56Sopenharmony_ci :data:`sys.path`. 3857db96d56Sopenharmony_ci 3867db96d56Sopenharmony_ci .. seealso:: 3877db96d56Sopenharmony_ci 3887db96d56Sopenharmony_ci :pep:`370` -- Per user site-packages directory 3897db96d56Sopenharmony_ci 3907db96d56Sopenharmony_ci 3917db96d56Sopenharmony_ci.. cmdoption:: -S 3927db96d56Sopenharmony_ci 3937db96d56Sopenharmony_ci Disable the import of the module :mod:`site` and the site-dependent 3947db96d56Sopenharmony_ci manipulations of :data:`sys.path` that it entails. Also disable these 3957db96d56Sopenharmony_ci manipulations if :mod:`site` is explicitly imported later (call 3967db96d56Sopenharmony_ci :func:`site.main` if you want them to be triggered). 3977db96d56Sopenharmony_ci 3987db96d56Sopenharmony_ci 3997db96d56Sopenharmony_ci.. cmdoption:: -u 4007db96d56Sopenharmony_ci 4017db96d56Sopenharmony_ci Force the stdout and stderr streams to be unbuffered. This option has no 4027db96d56Sopenharmony_ci effect on the stdin stream. 4037db96d56Sopenharmony_ci 4047db96d56Sopenharmony_ci See also :envvar:`PYTHONUNBUFFERED`. 4057db96d56Sopenharmony_ci 4067db96d56Sopenharmony_ci .. versionchanged:: 3.7 4077db96d56Sopenharmony_ci The text layer of the stdout and stderr streams now is unbuffered. 4087db96d56Sopenharmony_ci 4097db96d56Sopenharmony_ci 4107db96d56Sopenharmony_ci.. cmdoption:: -v 4117db96d56Sopenharmony_ci 4127db96d56Sopenharmony_ci Print a message each time a module is initialized, showing the place 4137db96d56Sopenharmony_ci (filename or built-in module) from which it is loaded. When given twice 4147db96d56Sopenharmony_ci (:option:`!-vv`), print a message for each file that is checked for when 4157db96d56Sopenharmony_ci searching for a module. Also provides information on module cleanup at exit. 4167db96d56Sopenharmony_ci 4177db96d56Sopenharmony_ci .. versionchanged:: 3.10 4187db96d56Sopenharmony_ci The :mod:`site` module reports the site-specific paths 4197db96d56Sopenharmony_ci and :file:`.pth` files being processed. 4207db96d56Sopenharmony_ci 4217db96d56Sopenharmony_ci See also :envvar:`PYTHONVERBOSE`. 4227db96d56Sopenharmony_ci 4237db96d56Sopenharmony_ci 4247db96d56Sopenharmony_ci.. _using-on-warnings: 4257db96d56Sopenharmony_ci.. cmdoption:: -W arg 4267db96d56Sopenharmony_ci 4277db96d56Sopenharmony_ci Warning control. Python's warning machinery by default prints warning 4287db96d56Sopenharmony_ci messages to :data:`sys.stderr`. 4297db96d56Sopenharmony_ci 4307db96d56Sopenharmony_ci The simplest settings apply a particular action unconditionally to all 4317db96d56Sopenharmony_ci warnings emitted by a process (even those that are otherwise ignored by 4327db96d56Sopenharmony_ci default):: 4337db96d56Sopenharmony_ci 4347db96d56Sopenharmony_ci -Wdefault # Warn once per call location 4357db96d56Sopenharmony_ci -Werror # Convert to exceptions 4367db96d56Sopenharmony_ci -Walways # Warn every time 4377db96d56Sopenharmony_ci -Wmodule # Warn once per calling module 4387db96d56Sopenharmony_ci -Wonce # Warn once per Python process 4397db96d56Sopenharmony_ci -Wignore # Never warn 4407db96d56Sopenharmony_ci 4417db96d56Sopenharmony_ci The action names can be abbreviated as desired and the interpreter will 4427db96d56Sopenharmony_ci resolve them to the appropriate action name. For example, ``-Wi`` is the 4437db96d56Sopenharmony_ci same as ``-Wignore``. 4447db96d56Sopenharmony_ci 4457db96d56Sopenharmony_ci The full form of argument is:: 4467db96d56Sopenharmony_ci 4477db96d56Sopenharmony_ci action:message:category:module:lineno 4487db96d56Sopenharmony_ci 4497db96d56Sopenharmony_ci Empty fields match all values; trailing empty fields may be omitted. For 4507db96d56Sopenharmony_ci example ``-W ignore::DeprecationWarning`` ignores all DeprecationWarning 4517db96d56Sopenharmony_ci warnings. 4527db96d56Sopenharmony_ci 4537db96d56Sopenharmony_ci The *action* field is as explained above but only applies to warnings that 4547db96d56Sopenharmony_ci match the remaining fields. 4557db96d56Sopenharmony_ci 4567db96d56Sopenharmony_ci The *message* field must match the whole warning message; this match is 4577db96d56Sopenharmony_ci case-insensitive. 4587db96d56Sopenharmony_ci 4597db96d56Sopenharmony_ci The *category* field matches the warning category 4607db96d56Sopenharmony_ci (ex: ``DeprecationWarning``). This must be a class name; the match test 4617db96d56Sopenharmony_ci whether the actual warning category of the message is a subclass of the 4627db96d56Sopenharmony_ci specified warning category. 4637db96d56Sopenharmony_ci 4647db96d56Sopenharmony_ci The *module* field matches the (fully qualified) module name; this match is 4657db96d56Sopenharmony_ci case-sensitive. 4667db96d56Sopenharmony_ci 4677db96d56Sopenharmony_ci The *lineno* field matches the line number, where zero matches all line 4687db96d56Sopenharmony_ci numbers and is thus equivalent to an omitted line number. 4697db96d56Sopenharmony_ci 4707db96d56Sopenharmony_ci Multiple :option:`-W` options can be given; when a warning matches more than 4717db96d56Sopenharmony_ci one option, the action for the last matching option is performed. Invalid 4727db96d56Sopenharmony_ci :option:`-W` options are ignored (though, a warning message is printed about 4737db96d56Sopenharmony_ci invalid options when the first warning is issued). 4747db96d56Sopenharmony_ci 4757db96d56Sopenharmony_ci Warnings can also be controlled using the :envvar:`PYTHONWARNINGS` 4767db96d56Sopenharmony_ci environment variable and from within a Python program using the 4777db96d56Sopenharmony_ci :mod:`warnings` module. For example, the :func:`warnings.filterwarnings` 4787db96d56Sopenharmony_ci function can be used to use a regular expression on the warning message. 4797db96d56Sopenharmony_ci 4807db96d56Sopenharmony_ci See :ref:`warning-filter` and :ref:`describing-warning-filters` for more 4817db96d56Sopenharmony_ci details. 4827db96d56Sopenharmony_ci 4837db96d56Sopenharmony_ci 4847db96d56Sopenharmony_ci.. cmdoption:: -x 4857db96d56Sopenharmony_ci 4867db96d56Sopenharmony_ci Skip the first line of the source, allowing use of non-Unix forms of 4877db96d56Sopenharmony_ci ``#!cmd``. This is intended for a DOS specific hack only. 4887db96d56Sopenharmony_ci 4897db96d56Sopenharmony_ci 4907db96d56Sopenharmony_ci.. cmdoption:: -X 4917db96d56Sopenharmony_ci 4927db96d56Sopenharmony_ci Reserved for various implementation-specific options. CPython currently 4937db96d56Sopenharmony_ci defines the following possible values: 4947db96d56Sopenharmony_ci 4957db96d56Sopenharmony_ci * ``-X faulthandler`` to enable :mod:`faulthandler`. 4967db96d56Sopenharmony_ci See also :envvar:`PYTHONFAULTHANDLER`. 4977db96d56Sopenharmony_ci * ``-X showrefcount`` to output the total reference count and number of used 4987db96d56Sopenharmony_ci memory blocks when the program finishes or after each statement in the 4997db96d56Sopenharmony_ci interactive interpreter. This only works on :ref:`debug builds 5007db96d56Sopenharmony_ci <debug-build>`. 5017db96d56Sopenharmony_ci * ``-X tracemalloc`` to start tracing Python memory allocations using the 5027db96d56Sopenharmony_ci :mod:`tracemalloc` module. By default, only the most recent frame is 5037db96d56Sopenharmony_ci stored in a traceback of a trace. Use ``-X tracemalloc=NFRAME`` to start 5047db96d56Sopenharmony_ci tracing with a traceback limit of *NFRAME* frames. 5057db96d56Sopenharmony_ci See :func:`tracemalloc.start` and :envvar:`PYTHONTRACEMALLOC` 5067db96d56Sopenharmony_ci for more information. 5077db96d56Sopenharmony_ci * ``-X int_max_str_digits`` configures the :ref:`integer string conversion 5087db96d56Sopenharmony_ci length limitation <int_max_str_digits>`. See also 5097db96d56Sopenharmony_ci :envvar:`PYTHONINTMAXSTRDIGITS`. 5107db96d56Sopenharmony_ci * ``-X importtime`` to show how long each import takes. It shows module 5117db96d56Sopenharmony_ci name, cumulative time (including nested imports) and self time (excluding 5127db96d56Sopenharmony_ci nested imports). Note that its output may be broken in multi-threaded 5137db96d56Sopenharmony_ci application. Typical usage is ``python3 -X importtime -c 'import 5147db96d56Sopenharmony_ci asyncio'``. See also :envvar:`PYTHONPROFILEIMPORTTIME`. 5157db96d56Sopenharmony_ci * ``-X dev``: enable :ref:`Python Development Mode <devmode>`, introducing 5167db96d56Sopenharmony_ci additional runtime checks that are too expensive to be enabled by 5177db96d56Sopenharmony_ci default. 5187db96d56Sopenharmony_ci * ``-X utf8`` enables the :ref:`Python UTF-8 Mode <utf8-mode>`. 5197db96d56Sopenharmony_ci ``-X utf8=0`` explicitly disables :ref:`Python UTF-8 Mode <utf8-mode>` 5207db96d56Sopenharmony_ci (even when it would otherwise activate automatically). 5217db96d56Sopenharmony_ci See also :envvar:`PYTHONUTF8`. 5227db96d56Sopenharmony_ci * ``-X pycache_prefix=PATH`` enables writing ``.pyc`` files to a parallel 5237db96d56Sopenharmony_ci tree rooted at the given directory instead of to the code tree. See also 5247db96d56Sopenharmony_ci :envvar:`PYTHONPYCACHEPREFIX`. 5257db96d56Sopenharmony_ci * ``-X warn_default_encoding`` issues a :class:`EncodingWarning` when the 5267db96d56Sopenharmony_ci locale-specific default encoding is used for opening files. 5277db96d56Sopenharmony_ci See also :envvar:`PYTHONWARNDEFAULTENCODING`. 5287db96d56Sopenharmony_ci * ``-X no_debug_ranges`` disables the inclusion of the tables mapping extra 5297db96d56Sopenharmony_ci location information (end line, start column offset and end column offset) 5307db96d56Sopenharmony_ci to every instruction in code objects. This is useful when smaller code 5317db96d56Sopenharmony_ci objects and pyc files are desired as well as suppressing the extra visual 5327db96d56Sopenharmony_ci location indicators when the interpreter displays tracebacks. See also 5337db96d56Sopenharmony_ci :envvar:`PYTHONNODEBUGRANGES`. 5347db96d56Sopenharmony_ci * ``-X frozen_modules`` determines whether or not frozen modules are 5357db96d56Sopenharmony_ci ignored by the import machinery. A value of "on" means they get 5367db96d56Sopenharmony_ci imported and "off" means they are ignored. The default is "on" 5377db96d56Sopenharmony_ci if this is an installed Python (the normal case). If it's under 5387db96d56Sopenharmony_ci development (running from the source tree) then the default is "off". 5397db96d56Sopenharmony_ci Note that the "importlib_bootstrap" and "importlib_bootstrap_external" 5407db96d56Sopenharmony_ci frozen modules are always used, even if this flag is set to "off". 5417db96d56Sopenharmony_ci 5427db96d56Sopenharmony_ci It also allows passing arbitrary values and retrieving them through the 5437db96d56Sopenharmony_ci :data:`sys._xoptions` dictionary. 5447db96d56Sopenharmony_ci 5457db96d56Sopenharmony_ci .. versionchanged:: 3.2 5467db96d56Sopenharmony_ci The :option:`-X` option was added. 5477db96d56Sopenharmony_ci 5487db96d56Sopenharmony_ci .. versionadded:: 3.3 5497db96d56Sopenharmony_ci The ``-X faulthandler`` option. 5507db96d56Sopenharmony_ci 5517db96d56Sopenharmony_ci .. versionadded:: 3.4 5527db96d56Sopenharmony_ci The ``-X showrefcount`` and ``-X tracemalloc`` options. 5537db96d56Sopenharmony_ci 5547db96d56Sopenharmony_ci .. versionadded:: 3.6 5557db96d56Sopenharmony_ci The ``-X showalloccount`` option. 5567db96d56Sopenharmony_ci 5577db96d56Sopenharmony_ci .. versionadded:: 3.7 5587db96d56Sopenharmony_ci The ``-X importtime``, ``-X dev`` and ``-X utf8`` options. 5597db96d56Sopenharmony_ci 5607db96d56Sopenharmony_ci .. versionadded:: 3.8 5617db96d56Sopenharmony_ci The ``-X pycache_prefix`` option. The ``-X dev`` option now logs 5627db96d56Sopenharmony_ci ``close()`` exceptions in :class:`io.IOBase` destructor. 5637db96d56Sopenharmony_ci 5647db96d56Sopenharmony_ci .. versionchanged:: 3.9 5657db96d56Sopenharmony_ci Using ``-X dev`` option, check *encoding* and *errors* arguments on 5667db96d56Sopenharmony_ci string encoding and decoding operations. 5677db96d56Sopenharmony_ci 5687db96d56Sopenharmony_ci The ``-X showalloccount`` option has been removed. 5697db96d56Sopenharmony_ci 5707db96d56Sopenharmony_ci .. versionadded:: 3.10 5717db96d56Sopenharmony_ci The ``-X warn_default_encoding`` option. 5727db96d56Sopenharmony_ci 5737db96d56Sopenharmony_ci .. deprecated-removed:: 3.9 3.10 5747db96d56Sopenharmony_ci The ``-X oldparser`` option. 5757db96d56Sopenharmony_ci 5767db96d56Sopenharmony_ci .. versionadded:: 3.11 5777db96d56Sopenharmony_ci The ``-X no_debug_ranges`` option. 5787db96d56Sopenharmony_ci 5797db96d56Sopenharmony_ci .. versionadded:: 3.11 5807db96d56Sopenharmony_ci The ``-X frozen_modules`` option. 5817db96d56Sopenharmony_ci 5827db96d56Sopenharmony_ci .. versionadded:: 3.11 5837db96d56Sopenharmony_ci The ``-X int_max_str_digits`` option. 5847db96d56Sopenharmony_ci 5857db96d56Sopenharmony_ci 5867db96d56Sopenharmony_ciOptions you shouldn't use 5877db96d56Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~ 5887db96d56Sopenharmony_ci 5897db96d56Sopenharmony_ci.. cmdoption:: -J 5907db96d56Sopenharmony_ci 5917db96d56Sopenharmony_ci Reserved for use by Jython_. 5927db96d56Sopenharmony_ci 5937db96d56Sopenharmony_ci.. _Jython: https://www.jython.org/ 5947db96d56Sopenharmony_ci 5957db96d56Sopenharmony_ci 5967db96d56Sopenharmony_ci.. _using-on-envvars: 5977db96d56Sopenharmony_ci 5987db96d56Sopenharmony_ciEnvironment variables 5997db96d56Sopenharmony_ci--------------------- 6007db96d56Sopenharmony_ci 6017db96d56Sopenharmony_ciThese environment variables influence Python's behavior, they are processed 6027db96d56Sopenharmony_cibefore the command-line switches other than -E or -I. It is customary that 6037db96d56Sopenharmony_cicommand-line switches override environmental variables where there is a 6047db96d56Sopenharmony_ciconflict. 6057db96d56Sopenharmony_ci 6067db96d56Sopenharmony_ci.. envvar:: PYTHONHOME 6077db96d56Sopenharmony_ci 6087db96d56Sopenharmony_ci Change the location of the standard Python libraries. By default, the 6097db96d56Sopenharmony_ci libraries are searched in :file:`{prefix}/lib/python{version}` and 6107db96d56Sopenharmony_ci :file:`{exec_prefix}/lib/python{version}`, where :file:`{prefix}` and 6117db96d56Sopenharmony_ci :file:`{exec_prefix}` are installation-dependent directories, both defaulting 6127db96d56Sopenharmony_ci to :file:`/usr/local`. 6137db96d56Sopenharmony_ci 6147db96d56Sopenharmony_ci When :envvar:`PYTHONHOME` is set to a single directory, its value replaces 6157db96d56Sopenharmony_ci both :file:`{prefix}` and :file:`{exec_prefix}`. To specify different values 6167db96d56Sopenharmony_ci for these, set :envvar:`PYTHONHOME` to :file:`{prefix}:{exec_prefix}`. 6177db96d56Sopenharmony_ci 6187db96d56Sopenharmony_ci 6197db96d56Sopenharmony_ci.. envvar:: PYTHONPATH 6207db96d56Sopenharmony_ci 6217db96d56Sopenharmony_ci Augment the default search path for module files. The format is the same as 6227db96d56Sopenharmony_ci the shell's :envvar:`PATH`: one or more directory pathnames separated by 6237db96d56Sopenharmony_ci :data:`os.pathsep` (e.g. colons on Unix or semicolons on Windows). 6247db96d56Sopenharmony_ci Non-existent directories are silently ignored. 6257db96d56Sopenharmony_ci 6267db96d56Sopenharmony_ci In addition to normal directories, individual :envvar:`PYTHONPATH` entries 6277db96d56Sopenharmony_ci may refer to zipfiles containing pure Python modules (in either source or 6287db96d56Sopenharmony_ci compiled form). Extension modules cannot be imported from zipfiles. 6297db96d56Sopenharmony_ci 6307db96d56Sopenharmony_ci The default search path is installation dependent, but generally begins with 6317db96d56Sopenharmony_ci :file:`{prefix}/lib/python{version}` (see :envvar:`PYTHONHOME` above). It 6327db96d56Sopenharmony_ci is *always* appended to :envvar:`PYTHONPATH`. 6337db96d56Sopenharmony_ci 6347db96d56Sopenharmony_ci An additional directory will be inserted in the search path in front of 6357db96d56Sopenharmony_ci :envvar:`PYTHONPATH` as described above under 6367db96d56Sopenharmony_ci :ref:`using-on-interface-options`. The search path can be manipulated from 6377db96d56Sopenharmony_ci within a Python program as the variable :data:`sys.path`. 6387db96d56Sopenharmony_ci 6397db96d56Sopenharmony_ci 6407db96d56Sopenharmony_ci.. envvar:: PYTHONSAFEPATH 6417db96d56Sopenharmony_ci 6427db96d56Sopenharmony_ci If this is set to a non-empty string, don't prepend a potentially unsafe 6437db96d56Sopenharmony_ci path to :data:`sys.path`: see the :option:`-P` option for details. 6447db96d56Sopenharmony_ci 6457db96d56Sopenharmony_ci .. versionadded:: 3.11 6467db96d56Sopenharmony_ci 6477db96d56Sopenharmony_ci 6487db96d56Sopenharmony_ci.. envvar:: PYTHONPLATLIBDIR 6497db96d56Sopenharmony_ci 6507db96d56Sopenharmony_ci If this is set to a non-empty string, it overrides the :data:`sys.platlibdir` 6517db96d56Sopenharmony_ci value. 6527db96d56Sopenharmony_ci 6537db96d56Sopenharmony_ci .. versionadded:: 3.9 6547db96d56Sopenharmony_ci 6557db96d56Sopenharmony_ci 6567db96d56Sopenharmony_ci.. envvar:: PYTHONSTARTUP 6577db96d56Sopenharmony_ci 6587db96d56Sopenharmony_ci If this is the name of a readable file, the Python commands in that file are 6597db96d56Sopenharmony_ci executed before the first prompt is displayed in interactive mode. The file 6607db96d56Sopenharmony_ci is executed in the same namespace where interactive commands are executed so 6617db96d56Sopenharmony_ci that objects defined or imported in it can be used without qualification in 6627db96d56Sopenharmony_ci the interactive session. You can also change the prompts :data:`sys.ps1` and 6637db96d56Sopenharmony_ci :data:`sys.ps2` and the hook :data:`sys.__interactivehook__` in this file. 6647db96d56Sopenharmony_ci 6657db96d56Sopenharmony_ci .. audit-event:: cpython.run_startup filename envvar-PYTHONSTARTUP 6667db96d56Sopenharmony_ci 6677db96d56Sopenharmony_ci Raises an :ref:`auditing event <auditing>` ``cpython.run_startup`` with 6687db96d56Sopenharmony_ci the filename as the argument when called on startup. 6697db96d56Sopenharmony_ci 6707db96d56Sopenharmony_ci 6717db96d56Sopenharmony_ci.. envvar:: PYTHONOPTIMIZE 6727db96d56Sopenharmony_ci 6737db96d56Sopenharmony_ci If this is set to a non-empty string it is equivalent to specifying the 6747db96d56Sopenharmony_ci :option:`-O` option. If set to an integer, it is equivalent to specifying 6757db96d56Sopenharmony_ci :option:`-O` multiple times. 6767db96d56Sopenharmony_ci 6777db96d56Sopenharmony_ci 6787db96d56Sopenharmony_ci.. envvar:: PYTHONBREAKPOINT 6797db96d56Sopenharmony_ci 6807db96d56Sopenharmony_ci If this is set, it names a callable using dotted-path notation. The module 6817db96d56Sopenharmony_ci containing the callable will be imported and then the callable will be run 6827db96d56Sopenharmony_ci by the default implementation of :func:`sys.breakpointhook` which itself is 6837db96d56Sopenharmony_ci called by built-in :func:`breakpoint`. If not set, or set to the empty 6847db96d56Sopenharmony_ci string, it is equivalent to the value "pdb.set_trace". Setting this to the 6857db96d56Sopenharmony_ci string "0" causes the default implementation of :func:`sys.breakpointhook` 6867db96d56Sopenharmony_ci to do nothing but return immediately. 6877db96d56Sopenharmony_ci 6887db96d56Sopenharmony_ci .. versionadded:: 3.7 6897db96d56Sopenharmony_ci 6907db96d56Sopenharmony_ci.. envvar:: PYTHONDEBUG 6917db96d56Sopenharmony_ci 6927db96d56Sopenharmony_ci If this is set to a non-empty string it is equivalent to specifying the 6937db96d56Sopenharmony_ci :option:`-d` option. If set to an integer, it is equivalent to specifying 6947db96d56Sopenharmony_ci :option:`-d` multiple times. 6957db96d56Sopenharmony_ci 6967db96d56Sopenharmony_ci 6977db96d56Sopenharmony_ci.. envvar:: PYTHONINSPECT 6987db96d56Sopenharmony_ci 6997db96d56Sopenharmony_ci If this is set to a non-empty string it is equivalent to specifying the 7007db96d56Sopenharmony_ci :option:`-i` option. 7017db96d56Sopenharmony_ci 7027db96d56Sopenharmony_ci This variable can also be modified by Python code using :data:`os.environ` 7037db96d56Sopenharmony_ci to force inspect mode on program termination. 7047db96d56Sopenharmony_ci 7057db96d56Sopenharmony_ci 7067db96d56Sopenharmony_ci.. envvar:: PYTHONUNBUFFERED 7077db96d56Sopenharmony_ci 7087db96d56Sopenharmony_ci If this is set to a non-empty string it is equivalent to specifying the 7097db96d56Sopenharmony_ci :option:`-u` option. 7107db96d56Sopenharmony_ci 7117db96d56Sopenharmony_ci 7127db96d56Sopenharmony_ci.. envvar:: PYTHONVERBOSE 7137db96d56Sopenharmony_ci 7147db96d56Sopenharmony_ci If this is set to a non-empty string it is equivalent to specifying the 7157db96d56Sopenharmony_ci :option:`-v` option. If set to an integer, it is equivalent to specifying 7167db96d56Sopenharmony_ci :option:`-v` multiple times. 7177db96d56Sopenharmony_ci 7187db96d56Sopenharmony_ci 7197db96d56Sopenharmony_ci.. envvar:: PYTHONCASEOK 7207db96d56Sopenharmony_ci 7217db96d56Sopenharmony_ci If this is set, Python ignores case in :keyword:`import` statements. This 7227db96d56Sopenharmony_ci only works on Windows and macOS. 7237db96d56Sopenharmony_ci 7247db96d56Sopenharmony_ci 7257db96d56Sopenharmony_ci.. envvar:: PYTHONDONTWRITEBYTECODE 7267db96d56Sopenharmony_ci 7277db96d56Sopenharmony_ci If this is set to a non-empty string, Python won't try to write ``.pyc`` 7287db96d56Sopenharmony_ci files on the import of source modules. This is equivalent to 7297db96d56Sopenharmony_ci specifying the :option:`-B` option. 7307db96d56Sopenharmony_ci 7317db96d56Sopenharmony_ci 7327db96d56Sopenharmony_ci.. envvar:: PYTHONPYCACHEPREFIX 7337db96d56Sopenharmony_ci 7347db96d56Sopenharmony_ci If this is set, Python will write ``.pyc`` files in a mirror directory tree 7357db96d56Sopenharmony_ci at this path, instead of in ``__pycache__`` directories within the source 7367db96d56Sopenharmony_ci tree. This is equivalent to specifying the :option:`-X` 7377db96d56Sopenharmony_ci ``pycache_prefix=PATH`` option. 7387db96d56Sopenharmony_ci 7397db96d56Sopenharmony_ci .. versionadded:: 3.8 7407db96d56Sopenharmony_ci 7417db96d56Sopenharmony_ci 7427db96d56Sopenharmony_ci.. envvar:: PYTHONHASHSEED 7437db96d56Sopenharmony_ci 7447db96d56Sopenharmony_ci If this variable is not set or set to ``random``, a random value is used 7457db96d56Sopenharmony_ci to seed the hashes of str and bytes objects. 7467db96d56Sopenharmony_ci 7477db96d56Sopenharmony_ci If :envvar:`PYTHONHASHSEED` is set to an integer value, it is used as a fixed 7487db96d56Sopenharmony_ci seed for generating the hash() of the types covered by the hash 7497db96d56Sopenharmony_ci randomization. 7507db96d56Sopenharmony_ci 7517db96d56Sopenharmony_ci Its purpose is to allow repeatable hashing, such as for selftests for the 7527db96d56Sopenharmony_ci interpreter itself, or to allow a cluster of python processes to share hash 7537db96d56Sopenharmony_ci values. 7547db96d56Sopenharmony_ci 7557db96d56Sopenharmony_ci The integer must be a decimal number in the range [0,4294967295]. Specifying 7567db96d56Sopenharmony_ci the value 0 will disable hash randomization. 7577db96d56Sopenharmony_ci 7587db96d56Sopenharmony_ci .. versionadded:: 3.2.3 7597db96d56Sopenharmony_ci 7607db96d56Sopenharmony_ci.. envvar:: PYTHONINTMAXSTRDIGITS 7617db96d56Sopenharmony_ci 7627db96d56Sopenharmony_ci If this variable is set to an integer, it is used to configure the 7637db96d56Sopenharmony_ci interpreter's global :ref:`integer string conversion length limitation 7647db96d56Sopenharmony_ci <int_max_str_digits>`. 7657db96d56Sopenharmony_ci 7667db96d56Sopenharmony_ci .. versionadded:: 3.11 7677db96d56Sopenharmony_ci 7687db96d56Sopenharmony_ci.. envvar:: PYTHONIOENCODING 7697db96d56Sopenharmony_ci 7707db96d56Sopenharmony_ci If this is set before running the interpreter, it overrides the encoding used 7717db96d56Sopenharmony_ci for stdin/stdout/stderr, in the syntax ``encodingname:errorhandler``. Both 7727db96d56Sopenharmony_ci the ``encodingname`` and the ``:errorhandler`` parts are optional and have 7737db96d56Sopenharmony_ci the same meaning as in :func:`str.encode`. 7747db96d56Sopenharmony_ci 7757db96d56Sopenharmony_ci For stderr, the ``:errorhandler`` part is ignored; the handler will always be 7767db96d56Sopenharmony_ci ``'backslashreplace'``. 7777db96d56Sopenharmony_ci 7787db96d56Sopenharmony_ci .. versionchanged:: 3.4 7797db96d56Sopenharmony_ci The ``encodingname`` part is now optional. 7807db96d56Sopenharmony_ci 7817db96d56Sopenharmony_ci .. versionchanged:: 3.6 7827db96d56Sopenharmony_ci On Windows, the encoding specified by this variable is ignored for interactive 7837db96d56Sopenharmony_ci console buffers unless :envvar:`PYTHONLEGACYWINDOWSSTDIO` is also specified. 7847db96d56Sopenharmony_ci Files and pipes redirected through the standard streams are not affected. 7857db96d56Sopenharmony_ci 7867db96d56Sopenharmony_ci.. envvar:: PYTHONNOUSERSITE 7877db96d56Sopenharmony_ci 7887db96d56Sopenharmony_ci If this is set, Python won't add the :data:`user site-packages directory 7897db96d56Sopenharmony_ci <site.USER_SITE>` to :data:`sys.path`. 7907db96d56Sopenharmony_ci 7917db96d56Sopenharmony_ci .. seealso:: 7927db96d56Sopenharmony_ci 7937db96d56Sopenharmony_ci :pep:`370` -- Per user site-packages directory 7947db96d56Sopenharmony_ci 7957db96d56Sopenharmony_ci 7967db96d56Sopenharmony_ci.. envvar:: PYTHONUSERBASE 7977db96d56Sopenharmony_ci 7987db96d56Sopenharmony_ci Defines the :data:`user base directory <site.USER_BASE>`, which is used to 7997db96d56Sopenharmony_ci compute the path of the :data:`user site-packages directory <site.USER_SITE>` 8007db96d56Sopenharmony_ci and :ref:`Distutils installation paths <inst-alt-install-user>` for 8017db96d56Sopenharmony_ci ``python setup.py install --user``. 8027db96d56Sopenharmony_ci 8037db96d56Sopenharmony_ci .. seealso:: 8047db96d56Sopenharmony_ci 8057db96d56Sopenharmony_ci :pep:`370` -- Per user site-packages directory 8067db96d56Sopenharmony_ci 8077db96d56Sopenharmony_ci 8087db96d56Sopenharmony_ci.. envvar:: PYTHONEXECUTABLE 8097db96d56Sopenharmony_ci 8107db96d56Sopenharmony_ci If this environment variable is set, ``sys.argv[0]`` will be set to its 8117db96d56Sopenharmony_ci value instead of the value got through the C runtime. Only works on 8127db96d56Sopenharmony_ci macOS. 8137db96d56Sopenharmony_ci 8147db96d56Sopenharmony_ci.. envvar:: PYTHONWARNINGS 8157db96d56Sopenharmony_ci 8167db96d56Sopenharmony_ci This is equivalent to the :option:`-W` option. If set to a comma 8177db96d56Sopenharmony_ci separated string, it is equivalent to specifying :option:`-W` multiple 8187db96d56Sopenharmony_ci times, with filters later in the list taking precedence over those earlier 8197db96d56Sopenharmony_ci in the list. 8207db96d56Sopenharmony_ci 8217db96d56Sopenharmony_ci The simplest settings apply a particular action unconditionally to all 8227db96d56Sopenharmony_ci warnings emitted by a process (even those that are otherwise ignored by 8237db96d56Sopenharmony_ci default):: 8247db96d56Sopenharmony_ci 8257db96d56Sopenharmony_ci PYTHONWARNINGS=default # Warn once per call location 8267db96d56Sopenharmony_ci PYTHONWARNINGS=error # Convert to exceptions 8277db96d56Sopenharmony_ci PYTHONWARNINGS=always # Warn every time 8287db96d56Sopenharmony_ci PYTHONWARNINGS=module # Warn once per calling module 8297db96d56Sopenharmony_ci PYTHONWARNINGS=once # Warn once per Python process 8307db96d56Sopenharmony_ci PYTHONWARNINGS=ignore # Never warn 8317db96d56Sopenharmony_ci 8327db96d56Sopenharmony_ci See :ref:`warning-filter` and :ref:`describing-warning-filters` for more 8337db96d56Sopenharmony_ci details. 8347db96d56Sopenharmony_ci 8357db96d56Sopenharmony_ci 8367db96d56Sopenharmony_ci.. envvar:: PYTHONFAULTHANDLER 8377db96d56Sopenharmony_ci 8387db96d56Sopenharmony_ci If this environment variable is set to a non-empty string, 8397db96d56Sopenharmony_ci :func:`faulthandler.enable` is called at startup: install a handler for 8407db96d56Sopenharmony_ci :const:`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` and 8417db96d56Sopenharmony_ci :const:`SIGILL` signals to dump the Python traceback. This is equivalent to 8427db96d56Sopenharmony_ci :option:`-X` ``faulthandler`` option. 8437db96d56Sopenharmony_ci 8447db96d56Sopenharmony_ci .. versionadded:: 3.3 8457db96d56Sopenharmony_ci 8467db96d56Sopenharmony_ci 8477db96d56Sopenharmony_ci.. envvar:: PYTHONTRACEMALLOC 8487db96d56Sopenharmony_ci 8497db96d56Sopenharmony_ci If this environment variable is set to a non-empty string, start tracing 8507db96d56Sopenharmony_ci Python memory allocations using the :mod:`tracemalloc` module. The value of 8517db96d56Sopenharmony_ci the variable is the maximum number of frames stored in a traceback of a 8527db96d56Sopenharmony_ci trace. For example, ``PYTHONTRACEMALLOC=1`` stores only the most recent 8537db96d56Sopenharmony_ci frame. 8547db96d56Sopenharmony_ci See the :func:`tracemalloc.start` function for more information. 8557db96d56Sopenharmony_ci This is equivalent to setting the :option:`-X` ``tracemalloc`` option. 8567db96d56Sopenharmony_ci 8577db96d56Sopenharmony_ci .. versionadded:: 3.4 8587db96d56Sopenharmony_ci 8597db96d56Sopenharmony_ci 8607db96d56Sopenharmony_ci.. envvar:: PYTHONPROFILEIMPORTTIME 8617db96d56Sopenharmony_ci 8627db96d56Sopenharmony_ci If this environment variable is set to a non-empty string, Python will 8637db96d56Sopenharmony_ci show how long each import takes. 8647db96d56Sopenharmony_ci This is equivalent to setting the :option:`-X` ``importtime`` option. 8657db96d56Sopenharmony_ci 8667db96d56Sopenharmony_ci .. versionadded:: 3.7 8677db96d56Sopenharmony_ci 8687db96d56Sopenharmony_ci 8697db96d56Sopenharmony_ci.. envvar:: PYTHONASYNCIODEBUG 8707db96d56Sopenharmony_ci 8717db96d56Sopenharmony_ci If this environment variable is set to a non-empty string, enable the 8727db96d56Sopenharmony_ci :ref:`debug mode <asyncio-debug-mode>` of the :mod:`asyncio` module. 8737db96d56Sopenharmony_ci 8747db96d56Sopenharmony_ci .. versionadded:: 3.4 8757db96d56Sopenharmony_ci 8767db96d56Sopenharmony_ci 8777db96d56Sopenharmony_ci.. envvar:: PYTHONMALLOC 8787db96d56Sopenharmony_ci 8797db96d56Sopenharmony_ci Set the Python memory allocators and/or install debug hooks. 8807db96d56Sopenharmony_ci 8817db96d56Sopenharmony_ci Set the family of memory allocators used by Python: 8827db96d56Sopenharmony_ci 8837db96d56Sopenharmony_ci * ``default``: use the :ref:`default memory allocators 8847db96d56Sopenharmony_ci <default-memory-allocators>`. 8857db96d56Sopenharmony_ci * ``malloc``: use the :c:func:`malloc` function of the C library 8867db96d56Sopenharmony_ci for all domains (:c:data:`PYMEM_DOMAIN_RAW`, :c:data:`PYMEM_DOMAIN_MEM`, 8877db96d56Sopenharmony_ci :c:data:`PYMEM_DOMAIN_OBJ`). 8887db96d56Sopenharmony_ci * ``pymalloc``: use the :ref:`pymalloc allocator <pymalloc>` for 8897db96d56Sopenharmony_ci :c:data:`PYMEM_DOMAIN_MEM` and :c:data:`PYMEM_DOMAIN_OBJ` domains and use 8907db96d56Sopenharmony_ci the :c:func:`malloc` function for the :c:data:`PYMEM_DOMAIN_RAW` domain. 8917db96d56Sopenharmony_ci 8927db96d56Sopenharmony_ci Install :ref:`debug hooks <pymem-debug-hooks>`: 8937db96d56Sopenharmony_ci 8947db96d56Sopenharmony_ci * ``debug``: install debug hooks on top of the :ref:`default memory 8957db96d56Sopenharmony_ci allocators <default-memory-allocators>`. 8967db96d56Sopenharmony_ci * ``malloc_debug``: same as ``malloc`` but also install debug hooks. 8977db96d56Sopenharmony_ci * ``pymalloc_debug``: same as ``pymalloc`` but also install debug hooks. 8987db96d56Sopenharmony_ci 8997db96d56Sopenharmony_ci .. versionchanged:: 3.7 9007db96d56Sopenharmony_ci Added the ``"default"`` allocator. 9017db96d56Sopenharmony_ci 9027db96d56Sopenharmony_ci .. versionadded:: 3.6 9037db96d56Sopenharmony_ci 9047db96d56Sopenharmony_ci 9057db96d56Sopenharmony_ci.. envvar:: PYTHONMALLOCSTATS 9067db96d56Sopenharmony_ci 9077db96d56Sopenharmony_ci If set to a non-empty string, Python will print statistics of the 9087db96d56Sopenharmony_ci :ref:`pymalloc memory allocator <pymalloc>` every time a new pymalloc object 9097db96d56Sopenharmony_ci arena is created, and on shutdown. 9107db96d56Sopenharmony_ci 9117db96d56Sopenharmony_ci This variable is ignored if the :envvar:`PYTHONMALLOC` environment variable 9127db96d56Sopenharmony_ci is used to force the :c:func:`malloc` allocator of the C library, or if 9137db96d56Sopenharmony_ci Python is configured without ``pymalloc`` support. 9147db96d56Sopenharmony_ci 9157db96d56Sopenharmony_ci .. versionchanged:: 3.6 9167db96d56Sopenharmony_ci This variable can now also be used on Python compiled in release mode. 9177db96d56Sopenharmony_ci It now has no effect if set to an empty string. 9187db96d56Sopenharmony_ci 9197db96d56Sopenharmony_ci 9207db96d56Sopenharmony_ci.. envvar:: PYTHONLEGACYWINDOWSFSENCODING 9217db96d56Sopenharmony_ci 9227db96d56Sopenharmony_ci If set to a non-empty string, the default :term:`filesystem encoding and 9237db96d56Sopenharmony_ci error handler` mode will revert to their pre-3.6 values of 'mbcs' and 9247db96d56Sopenharmony_ci 'replace', respectively. Otherwise, the new defaults 'utf-8' and 9257db96d56Sopenharmony_ci 'surrogatepass' are used. 9267db96d56Sopenharmony_ci 9277db96d56Sopenharmony_ci This may also be enabled at runtime with 9287db96d56Sopenharmony_ci :func:`sys._enablelegacywindowsfsencoding()`. 9297db96d56Sopenharmony_ci 9307db96d56Sopenharmony_ci .. availability:: Windows. 9317db96d56Sopenharmony_ci 9327db96d56Sopenharmony_ci .. versionadded:: 3.6 9337db96d56Sopenharmony_ci See :pep:`529` for more details. 9347db96d56Sopenharmony_ci 9357db96d56Sopenharmony_ci.. envvar:: PYTHONLEGACYWINDOWSSTDIO 9367db96d56Sopenharmony_ci 9377db96d56Sopenharmony_ci If set to a non-empty string, does not use the new console reader and 9387db96d56Sopenharmony_ci writer. This means that Unicode characters will be encoded according to 9397db96d56Sopenharmony_ci the active console code page, rather than using utf-8. 9407db96d56Sopenharmony_ci 9417db96d56Sopenharmony_ci This variable is ignored if the standard streams are redirected (to files 9427db96d56Sopenharmony_ci or pipes) rather than referring to console buffers. 9437db96d56Sopenharmony_ci 9447db96d56Sopenharmony_ci .. availability:: Windows. 9457db96d56Sopenharmony_ci 9467db96d56Sopenharmony_ci .. versionadded:: 3.6 9477db96d56Sopenharmony_ci 9487db96d56Sopenharmony_ci 9497db96d56Sopenharmony_ci.. envvar:: PYTHONCOERCECLOCALE 9507db96d56Sopenharmony_ci 9517db96d56Sopenharmony_ci If set to the value ``0``, causes the main Python command line application 9527db96d56Sopenharmony_ci to skip coercing the legacy ASCII-based C and POSIX locales to a more 9537db96d56Sopenharmony_ci capable UTF-8 based alternative. 9547db96d56Sopenharmony_ci 9557db96d56Sopenharmony_ci If this variable is *not* set (or is set to a value other than ``0``), the 9567db96d56Sopenharmony_ci ``LC_ALL`` locale override environment variable is also not set, and the 9577db96d56Sopenharmony_ci current locale reported for the ``LC_CTYPE`` category is either the default 9587db96d56Sopenharmony_ci ``C`` locale, or else the explicitly ASCII-based ``POSIX`` locale, then the 9597db96d56Sopenharmony_ci Python CLI will attempt to configure the following locales for the 9607db96d56Sopenharmony_ci ``LC_CTYPE`` category in the order listed before loading the interpreter 9617db96d56Sopenharmony_ci runtime: 9627db96d56Sopenharmony_ci 9637db96d56Sopenharmony_ci * ``C.UTF-8`` 9647db96d56Sopenharmony_ci * ``C.utf8`` 9657db96d56Sopenharmony_ci * ``UTF-8`` 9667db96d56Sopenharmony_ci 9677db96d56Sopenharmony_ci If setting one of these locale categories succeeds, then the ``LC_CTYPE`` 9687db96d56Sopenharmony_ci environment variable will also be set accordingly in the current process 9697db96d56Sopenharmony_ci environment before the Python runtime is initialized. This ensures that in 9707db96d56Sopenharmony_ci addition to being seen by both the interpreter itself and other locale-aware 9717db96d56Sopenharmony_ci components running in the same process (such as the GNU ``readline`` 9727db96d56Sopenharmony_ci library), the updated setting is also seen in subprocesses (regardless of 9737db96d56Sopenharmony_ci whether or not those processes are running a Python interpreter), as well as 9747db96d56Sopenharmony_ci in operations that query the environment rather than the current C locale 9757db96d56Sopenharmony_ci (such as Python's own :func:`locale.getdefaultlocale`). 9767db96d56Sopenharmony_ci 9777db96d56Sopenharmony_ci Configuring one of these locales (either explicitly or via the above 9787db96d56Sopenharmony_ci implicit locale coercion) automatically enables the ``surrogateescape`` 9797db96d56Sopenharmony_ci :ref:`error handler <error-handlers>` for :data:`sys.stdin` and 9807db96d56Sopenharmony_ci :data:`sys.stdout` (:data:`sys.stderr` continues to use ``backslashreplace`` 9817db96d56Sopenharmony_ci as it does in any other locale). This stream handling behavior can be 9827db96d56Sopenharmony_ci overridden using :envvar:`PYTHONIOENCODING` as usual. 9837db96d56Sopenharmony_ci 9847db96d56Sopenharmony_ci For debugging purposes, setting ``PYTHONCOERCECLOCALE=warn`` will cause 9857db96d56Sopenharmony_ci Python to emit warning messages on ``stderr`` if either the locale coercion 9867db96d56Sopenharmony_ci activates, or else if a locale that *would* have triggered coercion is 9877db96d56Sopenharmony_ci still active when the Python runtime is initialized. 9887db96d56Sopenharmony_ci 9897db96d56Sopenharmony_ci Also note that even when locale coercion is disabled, or when it fails to 9907db96d56Sopenharmony_ci find a suitable target locale, :envvar:`PYTHONUTF8` will still activate by 9917db96d56Sopenharmony_ci default in legacy ASCII-based locales. Both features must be disabled in 9927db96d56Sopenharmony_ci order to force the interpreter to use ``ASCII`` instead of ``UTF-8`` for 9937db96d56Sopenharmony_ci system interfaces. 9947db96d56Sopenharmony_ci 9957db96d56Sopenharmony_ci .. availability:: Unix. 9967db96d56Sopenharmony_ci 9977db96d56Sopenharmony_ci .. versionadded:: 3.7 9987db96d56Sopenharmony_ci See :pep:`538` for more details. 9997db96d56Sopenharmony_ci 10007db96d56Sopenharmony_ci 10017db96d56Sopenharmony_ci.. envvar:: PYTHONDEVMODE 10027db96d56Sopenharmony_ci 10037db96d56Sopenharmony_ci If this environment variable is set to a non-empty string, enable 10047db96d56Sopenharmony_ci :ref:`Python Development Mode <devmode>`, introducing additional runtime 10057db96d56Sopenharmony_ci checks that are too expensive to be enabled by default. 10067db96d56Sopenharmony_ci This is equivalent to setting the :option:`-X` ``dev`` option. 10077db96d56Sopenharmony_ci 10087db96d56Sopenharmony_ci .. versionadded:: 3.7 10097db96d56Sopenharmony_ci 10107db96d56Sopenharmony_ci.. envvar:: PYTHONUTF8 10117db96d56Sopenharmony_ci 10127db96d56Sopenharmony_ci If set to ``1``, enable the :ref:`Python UTF-8 Mode <utf8-mode>`. 10137db96d56Sopenharmony_ci 10147db96d56Sopenharmony_ci If set to ``0``, disable the :ref:`Python UTF-8 Mode <utf8-mode>`. 10157db96d56Sopenharmony_ci 10167db96d56Sopenharmony_ci Setting any other non-empty string causes an error during interpreter 10177db96d56Sopenharmony_ci initialisation. 10187db96d56Sopenharmony_ci 10197db96d56Sopenharmony_ci .. versionadded:: 3.7 10207db96d56Sopenharmony_ci 10217db96d56Sopenharmony_ci.. envvar:: PYTHONWARNDEFAULTENCODING 10227db96d56Sopenharmony_ci 10237db96d56Sopenharmony_ci If this environment variable is set to a non-empty string, issue a 10247db96d56Sopenharmony_ci :class:`EncodingWarning` when the locale-specific default encoding is used. 10257db96d56Sopenharmony_ci 10267db96d56Sopenharmony_ci See :ref:`io-encoding-warning` for details. 10277db96d56Sopenharmony_ci 10287db96d56Sopenharmony_ci .. versionadded:: 3.10 10297db96d56Sopenharmony_ci 10307db96d56Sopenharmony_ci.. envvar:: PYTHONNODEBUGRANGES 10317db96d56Sopenharmony_ci 10327db96d56Sopenharmony_ci If this variable is set, it disables the inclusion of the tables mapping 10337db96d56Sopenharmony_ci extra location information (end line, start column offset and end column 10347db96d56Sopenharmony_ci offset) to every instruction in code objects. This is useful when smaller 10357db96d56Sopenharmony_ci code objects and pyc files are desired as well as suppressing the extra visual 10367db96d56Sopenharmony_ci location indicators when the interpreter displays tracebacks. 10377db96d56Sopenharmony_ci 10387db96d56Sopenharmony_ci .. versionadded:: 3.11 10397db96d56Sopenharmony_ci 10407db96d56Sopenharmony_ci 10417db96d56Sopenharmony_ci 10427db96d56Sopenharmony_ciDebug-mode variables 10437db96d56Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~ 10447db96d56Sopenharmony_ci 10457db96d56Sopenharmony_ci.. envvar:: PYTHONTHREADDEBUG 10467db96d56Sopenharmony_ci 10477db96d56Sopenharmony_ci If set, Python will print threading debug info into stdout. 10487db96d56Sopenharmony_ci 10497db96d56Sopenharmony_ci Need a :ref:`debug build of Python <debug-build>`. 10507db96d56Sopenharmony_ci 10517db96d56Sopenharmony_ci .. deprecated-removed:: 3.10 3.12 10527db96d56Sopenharmony_ci 10537db96d56Sopenharmony_ci 10547db96d56Sopenharmony_ci.. envvar:: PYTHONDUMPREFS 10557db96d56Sopenharmony_ci 10567db96d56Sopenharmony_ci If set, Python will dump objects and reference counts still alive after 10577db96d56Sopenharmony_ci shutting down the interpreter. 10587db96d56Sopenharmony_ci 10597db96d56Sopenharmony_ci Need Python configured with the :option:`--with-trace-refs` build option. 10607db96d56Sopenharmony_ci 10617db96d56Sopenharmony_ci.. envvar:: PYTHONDUMPREFSFILE=FILENAME 10627db96d56Sopenharmony_ci 10637db96d56Sopenharmony_ci If set, Python will dump objects and reference counts still alive 10647db96d56Sopenharmony_ci after shutting down the interpreter into a file called *FILENAME*. 10657db96d56Sopenharmony_ci 10667db96d56Sopenharmony_ci Need Python configured with the :option:`--with-trace-refs` build option. 10677db96d56Sopenharmony_ci 10687db96d56Sopenharmony_ci .. versionadded:: 3.11 1069