Командная строка и среда
Интерпретатор CPython сканирует командную строку и среду для различных настроек.
Подробность реализации CPython: Схемы командной строки других реализаций могут отличаться. См. Альтернативные реализации для дополнительной информации.
1.1. Командная строка
При вызове Python можно указать любой из этих параметров:
python [-bBdEhiIOPqRsSuvVWx?] [-c command | -m module-name | script | - ] [args]
Наиболее распространённым случаем использования, конечно же, является простой вызов скрипта:
python myscript.py
1.1.1. Параметры интерфейса
Интерфейс интерпретатора напоминает интерфейс UNIX-оболочки, но предоставляет некоторые дополнительные методы вызова:
- При вызове со стандартным вводом, подключенным к устройству tty, он запрашивает команды и выполняет их до тех пор, пока не будет прочитан символ конца файла (EOF; его можно получить с помощью Ctrl-D в UNIX или Ctrl-Z, Enter в Windows). Более подробную информацию об интерактивном режиме см. в Интерактивный режим.
- При вызове с именем файла в качестве аргумента или с файлом в качестве стандартного ввода, он читает и выполняет скрипт из этого файла.
- При вызове с именем каталога в качестве аргумента, он читает и выполняет подходяще названный скрипт из этого каталога.
- При вызове с
-c command, выполняется(ются) заданное(ые) Python-утверждение(я) в виде команды. Здесь команда может содержать несколько утверждений, разделённых символами новой строки. Пробелы в начале Python-утверждений значимы! - При вызове с
-m module-name, указанный модуль находится на пути модулей Python и выполняется как скрипт.
В неинтерактивном режиме весь ввод парсится перед выполнением.
Параметр интерфейса завершает список параметров, используемых интерпретатором; все последующие аргументы окажутся в sys.argv – обратите внимание, что первый элемент с индексом ноль (sys.argv[0]) – это строка, отражающая исходный код программы.
-
-c <command> -
Выполнить Python-код в команде. Команда может содержать одно или несколько утверждений, разделённых символами новой строки, с учётом начальных пробелов, как в обычном коде модуля.
Если этот параметр задан, первый элемент
sys.argvбудет"-c", а текущий каталог будет добавлен в началоsys.path(что позволит импортировать модули из этого каталога как модули верхнего уровня).Возбуждает событие аудита аудита
cpython.run_commandс аргументомcommand.
-
-m <module-name> -
Искать указанный модуль в
sys.pathи выполнить его содержимое в качестве модуля__main__.Так как аргумент – это имя модуля, расширение файла указывать не нужно (
.py). Имя модуля должно быть допустимым полным именем Python-модуля, но реализация может не всегда это проверять (например, она может позволить использовать имя, содержащее дефис).Также разрешены имена пакетов (включая пакеты с именованным пространством имён). Если вместо обычного модуля передано имя пакета, интерпретатор выполнит
<pkg>.__main__в качестве главного модуля. Это поведение сознательно аналогично обработке каталогов и zip-архивов, которые передаются интерпретатору как аргумент скрипта.Примечание
Этот параметр нельзя использовать с встроенными модулями и модулями расширения, написанными на C, так как у них нет файлов Python-модулей. Однако его можно использовать для предварительно скомпилированных модулей, даже если исходный файл не доступен.
Если этот параметр задан, первый элемент
sys.argvбудет полным путём к файлу модуля (в то время как файл модуля ищется, первый элемент будет установлен в"-m"). Как и с параметром-c, текущий каталог добавляется в началоsys.path.Параметр
-Iможно использовать для запуска скрипта в изолированном режиме, гдеsys.pathне содержит ни текущего каталога, ни каталога site-packages пользователя. ВсеPYTHON*переменные окружения также игнорируются.Многие модули стандартной библиотеки содержат код, который вызывается при их выполнении как скрипта. Примером является модуль
timeit:python -m timeit -s "setup here" "benchmarked code here" python -m timeit -h # for details
Возбуждает событие аудита аудита
cpython.run_moduleс аргументомmodule-name.См. также
-
runpy.run_module() -
Эквивалентная функциональность, напрямую доступная в коде Python
PEP 338 – Выполнение модулей как скриптов
Изменено в версии 3.1: Передайте имя пакета для запуска подмодуля
__main__.Изменено в версии 3.4: также поддерживаются пакеты с именованным пространством имён
-
- -
-
Считывать команды из стандартного ввода (
sys.stdin). Если стандартный ввод является терминалом, подразумевается-i.Если этот параметр задан, первый элемент
sys.argvбудет"-", а текущий каталог будет добавлен в началоsys.path.Возбуждает событие аудита аудита
cpython.run_stdinбез аргументов.
- <script>
-
Выполнить Python-код, содержащийся в скрипте, который должен быть путём к файлу в файловой системе (абсолютным или относительным), ссылающимся на файл Python, каталог, содержащий файл
__main__.pyили zip-архив, содержащий файл__main__.py.Если этот параметр задан, первый элемент
sys.argvбудет именем скрипта, заданным в командной строке.Если имя скрипта ссылается непосредственно на файл Python, каталог, содержащий этот файл, добавляется в начало
sys.path, и файл выполняется как модуль__main__.Если имя скрипта ссылается на каталог или zip-архив, имя скрипта добавляется в начало
sys.path, и файл__main__.pyв этом месте выполняется как модуль__main__.Параметр
-Iможно использовать для запуска скрипта в изолированном режиме, гдеsys.pathне содержит ни каталога скрипта, ни каталога site-packages пользователя. ВсеPYTHON*переменные окружения также игнорируются.Возбуждает событие аудита аудита
cpython.run_fileс аргументомfilename.См. также
-
runpy.run_path() -
Эквивалентная функциональность, напрямую доступная в коде Python
-
Если не задан ни один параметр интерфейса, подразумевается -i, sys.argv[0] – это пустая строка ("") и текущий каталог будет добавлен в начало sys.path. Также автоматически включено дополнение по вводу и редактирование истории, если оно доступно на вашей платформе (см. Настройка Readline).
См. также
Изменено в версии 3.4: Автоматическое включение дополнения по вводу и редактирования истории.
1.1.2. Общие параметры
-
-? -
-h -
--help -
Вывести краткое описание всех параметров командной строки и соответствующих переменных среды и завершить работу.
-
--help-env -
Вывести краткое описание переменных среды, специфичных для Python, и завершить работу.
Добавлен в версии 3.11.
-
--help-xoptions -
Вывести описание параметров, специфичных для реализации
-X, и завершить работу.Добавлен в версии 3.11.
-
--help-all -
Вывести полную информацию о применении и завершить работу.
Добавлен в версии 3.11.
-
-V -
--version -
Вывести номер версии Python и завершить работу. Пример вывода:
Python 3.8.0b2+
При указании дважды вывести больше информации о сборке, например:
Python 3.8.0b2+ (3.8:0c076caaa8, Apr 20 2019, 21:55:00) [GCC 6.2.0 20161005]
Добавлен в версии 3.6: Параметр
-VV.
1.1.3. Дополнительные параметры
-
-b -
Выводить предупреждение при преобразовании
bytesилиbytearrayвstrбез указания кодировки или при сравненииbytesилиbytearrayсstrилиbytesсint. Выводить ошибку при указании параметра дважды (-bb).
-
-B -
При указании данного параметра Python не будет пытаться записать файлы
.pycпри импорте исходных модулей. См. такжеPYTHONDONTWRITEBYTECODE.
-
--check-hash-based-pycs default|always|never -
Управление поведением проверки файлов
.pycна основе хешей. См. Отмена кэширования байткода. При значенииdefault, проверяемые и непроверяемые кэшированные файлы байткода (hash-based) проверяются в соответствии со своими стандартными правилами. При значенииalways, все файлы.pycна основе хешей, как проверяемые, так и непроверяемые, проверяются по отношению к соответствующему исходному файлу. При значенииnever, файлы.pycна основе хешей не проверяются по отношению к соответствующим исходным файлам.Семантика файлов
.pycна основе времени не изменяется этим параметром.
-
-d -
Включение отладки синтаксического анализа (только для экспертов). См. также переменную среды
PYTHONDEBUG.Этот параметр требует отладочной сборки Python, в противном случае он игнорируется.
-
-E -
Игнорировать все переменные среды
PYTHON*, например,PYTHONPATHиPYTHONHOME, которые могут быть установлены.
-
-i -
Когда скрипт передаётся в качестве первого аргумента или используется параметр
-c, войти в интерактивный режим после выполнения скрипта или команды, даже еслиsys.stdinне является терминалом. ФайлPYTHONSTARTUPне читается.Это может быть полезно для проверки глобальных переменных или стека вызовов, когда скрипт вызывает исключение. См. также
PYTHONINSPECT.
-
-I -
Запуск Python в изолированном режиме. Это также подразумевает параметры
-E,-Pи-s.В изолированном режиме
sys.pathне содержит ни директорию скрипта, ни директорию пользовательских пакетов. Все переменные средыPYTHON*также игнорируются. Для предотвращения внедрения вредоносного кода могут быть наложены дополнительные ограничения.Добавлен в версии 3.4.
-
-O -
Удалить операторы assert и любой код, условный на значении
__debug__. Добавить префикс.opt-1к имени файла скомпилированных файлов (байткод) перед расширением.pyc(см. PEP 488). См. такжеPYTHONOPTIMIZE.Изменено в версии 3.5: Изменение имён файлов
.pycв соответствии с PEP 488.
-
-OO -
Выполнить
-Oи также удалить строки документации. Добавить префикс.opt-2к имени файла скомпилированных файлов (байткод) перед расширением.pyc(см. PEP 488).Изменено в версии 3.5: Изменение имён файлов
.pycв соответствии с PEP 488.
-
-P -
Не добавлять потенциально небезопасный путь к
sys.path:-
python -m moduleкомандная строка: Не добавлять текущую рабочую директорию. -
python script.pyкомандная строка: Не добавлять директорию скрипта. Если это символическая ссылка, разрешать символические ссылки. -
python -c codeиpython(REPL) командные строки: Не добавлять пустую строку, что означает текущую рабочую директорию.
См. также переменную среды
PYTHONSAFEPATHи параметры-Eи-I(изолированный режим).Добавлен в версии 3.11.
-
-
-q -
Не отображать сообщения об авторских правах и версии, даже в интерактивном режиме.
Добавлен в версии 3.2.
-
-R -
Включить случайное хеширование. Этот параметр действует только если переменная среды
PYTHONHASHSEEDимеет значение0, так как случайное хеширование включено по умолчанию.В предыдущих версиях Python этот параметр включал случайное хеширование, так что значения
__hash__()объектов str и bytes «засаливались» случайным значением, непредсказуемым для пользователя. Хотя они остаются постоянными в рамках отдельного процесса Python, они непредсказуемы при повторном запуске Python.Случайное хеширование призвано защитить от атаки отказа в обслуживании, вызванной тщательно выбранными входными данными, которые используют худший случай работы операции построения словаря (O(n2) сложность). Подробности см. на странице http://ocert.org/advisories/ocert-2011-003.html.
PYTHONHASHSEEDпозволяет установить фиксированное значение для секрета генератора хешей.Добавлен в версии 3.2.3.
Изменено в версии 3.7: Параметр больше не игнорируется.
-
-s -
Не добавлять
user site-packages directoryвsys.path.См. также
PYTHONNOUSERSITE.См. также
PEP 370 – Директория пользовательских пакетов
-
-S -
Отключить импорт модуля
siteи зависящие от сайта манипуляции сsys.path. Также отключить эти манипуляции, еслиsiteявно импортируется позже (вызовитеsite.main(), если хотите, чтобы они были выполнены).
-
-u -
Принудительно установить потоки stdout и stderr в небуферизованный режим. Этот параметр не влияет на поток stdin.
См. также
PYTHONUNBUFFERED.Изменено в версии 3.7: Текстовый слой потоков stdout и stderr теперь не буферизован.
-
-v -
Выводить сообщение каждый раз, когда модуль инициализируется, показывая место (имя файла или встроенный модуль), из которого он загружается. При указании дважды (
-vv) выводит сообщение для каждого файла, который проверяется при поиске модуля. Также предоставляет информацию об очистке модулей при выходе.Изменено в версии 3.10: Модуль
siteсообщает о сайтоспецифических путях и.pthобрабатываемых файлах.См. также
PYTHONVERBOSE.
-
-W arg -
Управление предупреждениями. Механизм предупреждений Python по умолчанию выводит сообщения о предупреждениях в
sys.stderr.Простейшие настройки применяют определённое действие ко всем предупреждениям, испущенным процессом (даже к тем, которые по умолчанию игнорируются):
-Wdefault # Warn once per call location -Werror # Convert to exceptions -Walways # Warn every time -Wall # Same as -Walways -Wmodule # Warn once per calling module -Wonce # Warn once per Python process -Wignore # Never warn
Имена действий можно сокращать по желанию, и интерпретатор преобразует их в соответствующее имя действия. Например,
-Wiэквивалентно-Wignore.Полный формат аргумента:
action:message:category:module:lineno
Пустые поля соответствуют всем значениям; конечные пустые поля можно опустить. Например,
-W ignore::DeprecationWarningигнорирует все предупреждения DeprecationWarning.Поле действие, как указано выше, применяется только к предупреждениям, соответствующим остальным полям.
Поле сообщение должно соответствовать всему сообщению о предупреждении; это соответствие не учитывает регистр.
Поле категория соответствует категории предупреждения (например,
DeprecationWarning). Это должно быть имя класса; тест на соответствие проверяет, является ли фактическая категория предупреждения сообщения подклассом указанной категории предупреждения.Поле модуль соответствует имени модуля (полное имя); это соответствие учитывает регистр.
Поле номер строки соответствует номеру строки, где ноль соответствует всем номерам строк и, следовательно, эквивалентно опущенному номеру строки.
Можно задать несколько параметров
-W; когда предупреждение соответствует нескольким параметрам, выполняется действие последнего соответствующего параметра. Некорректные параметры-Wигнорируются (хотя о некорректных параметрах выводится сообщение при появлении первого предупреждения).Управление предупреждениями также возможно с помощью переменной окружения
PYTHONWARNINGSи внутри программы Python с помощью модуляwarnings. Например, функцияwarnings.filterwarnings()может использоваться для применения регулярного выражения к сообщению о предупреждении.См. Фильтр предупреждений и Описание фильтров предупреждений для получения более подробной информации.
-
-x -
Пропустить первую строку исходного кода, что позволяет использовать не-Unix-варианты
#!cmd. Это предназначено только для решения специфической проблемы DOS.
-
-X -
Зарезервировано для различных опций, специфичных для реализации. CPython в настоящее время определяет следующие возможные значения:
-
-X faulthandlerдля включенияfaulthandler. См. такжеPYTHONFAULTHANDLER.Добавлен в версии 3.3.
-
-X showrefcountдля вывода общего счетчика ссылок и количества используемых блоков памяти при завершении программы или после каждой команды в интерактивном интерпретаторе. Это работает только в отладочных сборках.Добавлен в версии 3.4.
-
-X tracemallocдля запуска отслеживания выделения памяти Python с помощью модуляtracemalloc. По умолчанию в трассировке исключения сохраняется только самый последний кадр. Используйте-X tracemalloc=NFRAMEдля запуска отслеживания с ограничением трассировки на NFRAME кадров. См.tracemalloc.start()иPYTHONTRACEMALLOCдля получения дополнительной информации.Добавлен в версии 3.4.
-
-X int_max_str_digitsнастраивает ограничение длины целых строк. См. такжеPYTHONINTMAXSTRDIGITS.Добавлен в версии 3.11.
-
-X importtimeдля отображения времени, затраченного на каждый импорт. Отображает имя модуля, накопленное время (включая вложенные импорты) и собственное время (исключая вложенные импорты). Обратите внимание, что вывод может быть разбит в многопоточных приложениях. Типичное использованиеpython3 -X importtime -c 'import asyncio'. См. такжеPYTHONPROFILEIMPORTTIME.Добавлен в версии 3.7.
-
-X dev: включает Режим разработки Python, добавляя дополнительные проверки во время выполнения, которые слишком дороги для включения по умолчанию. См. такжеPYTHONDEVMODE.Добавлен в версии 3.7.
-
-X utf8включает Режим UTF-8 Python.-X utf8=0явно отключает Режим UTF-8 Python (даже когда он должен активироваться автоматически). См. такжеPYTHONUTF8.Добавлен в версии 3.7.
-
-X pycache_prefix=PATHпозволяет записывать файлы.pycв параллельное дерево, укоренённое в указанном каталоге, вместо каталога кода. См. такжеPYTHONPYCACHEPREFIX.Добавлен в версии 3.8.
-
-X warn_default_encodingвыводит предупреждениеEncodingWarningпри использовании локального кодирования по умолчанию для открытия файлов. См. такжеPYTHONWARNDEFAULTENCODING.Добавлен в версии 3.10.
-
-X no_debug_rangesотключает включение таблиц, сопоставляющих дополнительную информацию о расположении (конец строки, смещение начала столбца и смещение конца столбца) с каждой инструкцией в объектах кода. Это полезно, когда требуются более компактные объекты кода и файлы pyc, а также для подавления дополнительных визуальных указателей расположения при отображении стека вызовов интерпретатором. См. такжеPYTHONNODEBUGRANGES.Добавлен в версии 3.11.
-
-X frozen_modulesопределяет, игнорируются ли замороженные модули механизмом импорта. Значениеonозначает, что они импортируются, аoffозначает, что они игнорируются. По умолчанию этоonесли это установленный Python (обычный случай). Если он находится в разработке (запускается из дерева исходных кодов), то по умолчаниюoff. Обратите внимание, что модулиimportlib_bootstrapиimportlib_bootstrap_externalвсегда используются, даже если этот флаг установлен вoff. См. такжеPYTHON_FROZEN_MODULES.Добавлен в версии 3.11.
-
-X perfвключает поддержку профайлера Linuxperf. При указании этой опции профайлерperfсможет сообщать о вызовах Python. Эта опция доступна только на некоторых платформах и не будет работать, если она не поддерживается на текущей системе. Значение по умолчанию — «выкл». См. такжеPYTHONPERFSUPPORTи Поддержка Python для профайлера Linux perf.Добавлен в версии 3.12.
-
-X perf_jitвключает поддержку профайлера Linuxperfс поддержкой DWARF. При указании этой опции профайлерperfсможет сообщать о вызовах Python, используя информацию DWARF. Эта опция доступна только на некоторых платформах и не будет работать, если она не поддерживается на текущей системе. Значение по умолчанию — «выкл». См. такжеPYTHON_PERF_JIT_SUPPORTи Поддержка Python для профайлера Linux perf.Добавлен в версии 3.13.
-
-X cpu_count=nпереопределяетos.cpu_count(),os.process_cpu_count()иmultiprocessing.cpu_count(). n должно быть больше или равно 1. Эта опция может быть полезна пользователям, которым нужно ограничить ресурсы ЦП системы контейнера. См. такжеPYTHON_CPU_COUNT. Если n равноdefault, ничего не переопределяется.Добавлен в версии 3.13.
-
-X presite=package.moduleуказывает модуль, который должен быть импортирован до выполнения модуляsiteи до существования модуля__main__. Поэтому импортированный модуль не является__main__. Это можно использовать для выполнения кода на ранних этапах инициализации Python. Для этой опции требуется, чтобы Python был скомпилирован в отладочном режиме. См. такжеPYTHON_PRESITE.Добавлен в версии 3.13.
-
-X gil=0,1соответственно, принудительно отключает или включает GIL. Установка в0доступна только в сборках, сконфигурированных с помощью--disable-gil. См. такжеPYTHON_GILи Многопотоковый CPython.Добавлен в версии 3.13.
Он также позволяет передавать произвольные значения и получать их через словарь
sys._xoptions.Добавлен в версии 3.2.
Изменено в версии 3.9: Убрана опция
-X showalloccount.Изменено в версии 3.10: Убрана опция
-X oldparser. -
1.1.4. Управление цветом
Интерпретатор Python по умолчанию использует цвета для выделения вывода в определённых ситуациях, таких как при отображении отладки. Это поведение можно настроить, установив различные переменные окружения.
Установка переменной окружения TERM в значение dumb отключит цвет.
Если переменная окружения FORCE_COLOR установлена, цвет будет включён независимо от значения TERM. Это полезно в системах CI, которые не являются терминалами, но всё ещё могут отображать ANSI escape-последовательности.
Если установлена переменная окружения NO_COLOR, Python отключит весь цвет в выводе. Это имеет приоритет над FORCE_COLOR.
Все эти переменные окружения используются также другими инструментами для управления выводом цвета. Чтобы управлять выводом цвета только в интерпретаторе Python, можно использовать переменную окружения PYTHON_COLORS. Эта переменная имеет приоритет над NO_COLOR, которая, в свою очередь, имеет приоритет над FORCE_COLOR.
1.1.5. Параметры, которые не следует использовать
-
-J -
Зарезервировано для использования в Jython.
1.2. Переменные окружения
Эти переменные окружения влияют на поведение Python, они обрабатываются до командных переключателей, кроме -E или -I. При возникновении конфликта, как правило, командные переключатели имеют приоритет над переменными окружения.
-
PYTHONHOME -
Изменяет расположение стандартных библиотек Python. По умолчанию, библиотеки ищутся в
prefix/lib/pythonversionиexec_prefix/lib/pythonversion, гдеprefixиexec_prefix— зависящие от установки директории, обе по умолчанию устанавливаются в/usr/local.Когда
PYTHONHOMEустановлена в одну директорию, её значение заменяет обаprefixиexec_prefix. Чтобы указать разные значения, установитеPYTHONHOMEвprefix:exec_prefix.
-
PYTHONPATH -
Расширяет стандартный путь поиска файлов модулей. Формат аналогичен
PATHоболочки: один или несколько путей к каталогам, разделенныхos.pathsep(например, двоеточиями в Unix или точками с запятой в Windows). Несуществующие каталоги игнорируются.Помимо обычных каталогов, отдельные элементы
PYTHONPATHмогут ссылаться на zip-архивы, содержащие чистые Python-модули (в исходной или скомпилированной форме). Расширенные модули не могут импортироваться из zip-архивов.Стандартный путь поиска зависит от установки, но обычно начинается с
prefix/lib/pythonversion(см.PYTHONHOMEвыше). Он всегда добавляется кPYTHONPATH.Дополнительный каталог будет вставлен в путь поиска перед
PYTHONPATH, как описано выше в разделе Параметры интерфейса. Путь поиска может быть изменён в Python-программе как переменнаяsys.path.
-
PYTHONSAFEPATH -
Если это значение установлено в непустую строку, потенциально небезопасный путь не будет добавлен в начало
sys.path: см. опцию-Pдля деталей.Добавлена в версии 3.11.
-
PYTHONPLATLIBDIR -
Если это значение установлено в непустую строку, оно переопределяет значение
sys.platlibdir.Добавлена в версии 3.9.
-
PYTHONSTARTUP -
Если это имя читаемого файла, то Python-команды в этом файле выполняются перед отображением первого приглашения в интерактивном режиме. Файл выполняется в той же области видимости, где выполняются интерактивные команды, поэтому объекты, определённые или импортированные в нём, могут использоваться без квалификации в интерактивной сессии. В этом файле также можно изменить приглашения
sys.ps1иsys.ps2, а также обработчикsys.__interactivehook__.Возбуждает событие аудита
cpython.run_startupс именем файла в качестве аргумента при вызове на старте.
-
PYTHONOPTIMIZE -
Если это значение установлено в непустую строку, это эквивалентно указанию опции
-O. Если значение — целое число, это эквивалентно многократному указанию опции-O.
-
PYTHONBREAKPOINT -
Если это установлено, оно называет вызываемый объект с использованием обозначения с точками. Модуль, содержащий вызываемый объект, будет импортирован, а затем вызываемый объект будет запущен по умолчанию реализацией
sys.breakpointhook(), которое само вызывается встроенной функциейbreakpoint(). Если не установлено или установлено в пустую строку, оно эквивалентно значению «pdb.set_trace». Установка значения «0» заставит реализацию по умолчаниюsys.breakpointhook()ничего не делать, а сразу же вернуть значение.Добавлена в версии 3.7.
-
PYTHONDEBUG -
Если это значение установлено в непустую строку, это эквивалентно указанию опции
-d. Если значение — целое число, это эквивалентно многократному указанию опции-d.Для этой переменной окружения требуется отладка сборки Python, в противном случае она игнорируется.
-
PYTHONINSPECT -
Если это значение установлено в непустую строку, это эквивалентно указанию опции
-i.Эта переменная также может быть изменена кодом Python с помощью
os.environдля принудительного включения режима инспекции при завершении программы.Возбуждает событие аудита
cpython.run_stdinбез аргументов.Изменено в версии 3.12.5: (также 3.11.10, 3.10.15, 3.9.20 и 3.8.20) Возбуждает события аудита.
Изменено в версии 3.13: Использует PyREPL, если возможно, в этом случае также выполняется
PYTHONSTARTUP. Возбуждает события аудита.
-
PYTHONUNBUFFERED -
Если это значение установлено в непустую строку, это эквивалентно указанию опции
-u.
-
PYTHONVERBOSE -
Если это значение установлено в непустую строку, это эквивалентно указанию опции
-v. Если значение — целое число, это эквивалентно многократному указанию опции-v.
-
PYTHONCASEOK -
Если установлено, Python игнорирует регистр в операторах
import. Это работает только на Windows и macOS.
-
PYTHONDONTWRITEBYTECODE -
Если это значение установлено в непустую строку, Python не будет пытаться записать файлы
.pycпри импорте исходных модулей. Это эквивалентно указанию опции-B.
-
PYTHONPYCACHEPREFIX -
Если установлено, Python будет записывать файлы
.pycв зеркальной директории по этому пути вместо директорий__pycache__в исходном дереве. Это эквивалентно указанию опции-Xpycache_prefix=PATH.Добавлена в версии 3.8.
-
PYTHONHASHSEED -
Если эта переменная не установлена или установлена в
random, для генерации хешей объектов str и bytes используется случайное значение.Если
PYTHONHASHSEEDустановлена в целое число, оно используется в качестве фиксированного начального значения для генерации hash() для типов, охватываемых случайным генерированием хешей.Цель состоит в том, чтобы разрешить повторяемое хеширование, например, для самотестирования самого интерпретатора или для того, чтобы группа процессов Python могли совместно использовать значения хешей.
Целое число должно быть десятичным числом в диапазоне [0,4294967295]. Указание значения 0 отключит случайное хеширование.
Добавлена в версии 3.2.3.
-
PYTHONINTMAXSTRDIGITS -
Если эта переменная установлена в целое число, она используется для настройки глобального ограничения длины строки представления целого числа интерпретатора длины строки целого числа.
Добавлена в версии 3.11.
-
PYTHONIOENCODING -
Если эта переменная установлена перед запуском интерпретатора, она переопределяет кодировку, используемую для stdin/stdout/stderr, в формате
encodingname:errorhandler. Обе частиencodingnameи:errorhandlerнеобязательны и имеют то же значение, что и вstr.encode().Для stderr часть
:errorhandlerигнорируется; обработчик всегда будет'backslashreplace'.Изменено в версии 3.4: Часть
encodingnameтеперь необязательна.Изменено в версии 3.6: В Windows кодировка, указанная в этой переменной, игнорируется для буферов интерактивной консоли, если также не указана
PYTHONLEGACYWINDOWSSTDIO. Файлы и конвейы, перенаправленные через стандартные потоки, не затронуты.
-
PYTHONNOUSERSITE -
Если эта переменная установлена, Python не добавит
user site-packages directoryвsys.path.См. также
PEP 370 – Директория site-packages для каждого пользователя
-
PYTHONUSERBASE -
Определяет
user base directory, которое используется для вычисления пути кuser site-packages directoryи путей установки дляpython -m pip install --user.См. также
PEP 370 – Директория site-packages для каждого пользователя
-
PYTHONEXECUTABLE -
Если эта переменная среды установлена,
sys.argv[0]будет установлена в ее значение вместо значения, полученного через C-runtime. Работает только на macOS.
-
PYTHONWARNINGS -
Это эквивалентно параметру
-W. Если установлено в строку, разделенную запятыми, это эквивалентно указанию-Wнесколько раз, причем фильтры, указанные позже в списке, имеют приоритет над теми, которые указаны ранее.Простейшие настройки применяют определенное действие безусловно ко всем предупреждениям, выдаваемым процессом (даже к тем, которые по умолчанию игнорируются):
PYTHONWARNINGS=default # Warn once per call location PYTHONWARNINGS=error # Convert to exceptions PYTHONWARNINGS=always # Warn every time PYTHONWARNINGS=all # Same as PYTHONWARNINGS=always PYTHONWARNINGS=module # Warn once per calling module PYTHONWARNINGS=once # Warn once per Python process PYTHONWARNINGS=ignore # Never warn
См. Фильтр предупреждений и Описание фильтров предупреждений для получения более подробной информации.
-
PYTHONFAULTHANDLER -
Если эта переменная среды установлена в непустую строку,
faulthandler.enable()вызывается при запуске: устанавливается обработчик дляSIGSEGV,SIGFPE,SIGABRT,SIGBUSиSIGILLсигналов для вывода отладки стека Python. Это эквивалентно-Xfaulthandlerпараметру.Добавлена в версии 3.3.
-
PYTHONTRACEMALLOC -
Если эта переменная среды установлена в непустую строку, отслеживаются выделения памяти Python с помощью модуля
tracemalloc. Значение переменной — максимальное количество кадров, хранимых в стеке отладки. Например,PYTHONTRACEMALLOC=1хранит только последний кадр. Для получения дополнительной информации см. функциюtracemalloc.start(). Это эквивалентно установке-Xtracemallocпараметра.Добавлена в версии 3.4.
-
PYTHONPROFILEIMPORTTIME -
Если эта переменная среды установлена в непустую строку, Python будет отображать время импорта каждой библиотеки. Это эквивалентно установке
-Ximporttimeпараметра.Добавлена в версии 3.7.
-
PYTHONASYNCIODEBUG -
Если эта переменная среды установлена в непустую строку, включите режим отладки режим отладки модуля
asyncio.Добавлена в версии 3.4.
-
PYTHONMALLOC -
Устанавливает менеджеры памяти Python и/или устанавливает отладочные обработчики.
Установите семейство менеджеров памяти, используемых Python:
-
default: использовать стандартные менеджеры памяти. -
malloc: использовать функциюmalloc()C-библиотеки для всех областей (PYMEM_DOMAIN_RAW,PYMEM_DOMAIN_MEM,PYMEM_DOMAIN_OBJ). -
pymalloc: использовать менеджер памяти pymalloc дляPYMEM_DOMAIN_MEMиPYMEM_DOMAIN_OBJобластей и использовать функциюmalloc()дляPYMEM_DOMAIN_RAWобласти. -
mimalloc: использовать менеджер памяти mimalloc дляPYMEM_DOMAIN_MEMиPYMEM_DOMAIN_OBJобластей и использовать функциюmalloc()дляPYMEM_DOMAIN_RAWобласти.
Установить отладочные обработчики:
-
debug: установить отладочные обработчики поверх стандартных менеджеров памяти. -
malloc_debug: аналогичноmalloc, но также установить отладочные обработчики. -
pymalloc_debug: аналогичноpymalloc, но также установить отладочные обработчики. -
mimalloc_debug: аналогичноmimalloc, но также установить отладочные обработчики.
Добавлена в версии 3.6.
Изменено в версии 3.7: Добавлен менеджер памяти
"default". -
-
PYTHONMALLOCSTATS -
Если установлено ненулевое значение, Python будет выводить статистику аллокатора памяти pymalloc каждый раз при создании новой области памяти объекта pymalloc и при завершении работы.
Эта переменная игнорируется, если переменная окружения
PYTHONMALLOCиспользуется для принудительного выбора аллокатора C-библиотеки, или если Python сконфигурирован без поддержкиpymalloc.Изменено в версии 3.6: Теперь эта переменная также может использоваться при компиляции Python в режиме релиз. Теперь она не имеет эффекта, если установлена в пустую строку.
-
PYTHONLEGACYWINDOWSFSENCODING -
Если установлено ненулевое значение, режим по умолчанию кодировки и обработчика ошибок файловой системы вернется к значениям до версии 3.6 — ‘mbcs’ и ‘replace’ соответственно. В противном случае используются новые значения по умолчанию ‘utf-8’ и ‘surrogatepass’.
Это также можно включить во время выполнения с помощью
sys._enablelegacywindowsfsencoding().Доступность: Windows.
Добавлена в версии 3.6: См. PEP 529 для получения более подробной информации.
-
PYTHONLEGACYWINDOWSSTDIO -
Если установлено ненулевое значение, не используются новые средства чтения и записи консоли. Это означает, что символы Unicode будут закодированы в соответствии с активной кодовой страницей консоли, а не с помощью utf-8.
Эта переменная игнорируется, если стандартные потоки перенаправлены (в файлы или каналы) вместо того, чтобы ссылаться на буферы консоли.
Доступность: Windows.
Добавлена в версии 3.6.
-
PYTHONCOERCECLOCALE -
Если установлено значение
0, основное приложение командной строки Python пропустит приведение устаревшего ASCII-ориентированного C и POSIX локалей к более эффективной UTF-8-ориентированной альтернативе.Если эта переменная не установлена (или установлена в значение, отличное от
0), переменная окружения переопределения локалиLC_ALLтакже не установлена, и текущая локаль, сообщенная для категорииLC_CTYPE, является либо локалью по умолчаниюC, либо явно ASCII-ориентированной локальюPOSIX, тогда Python CLI попытается настроить следующие локали для категорииLC_CTYPEв указанном порядке перед загрузкой интерпретатора:C.UTF-8C.utf8UTF-8
Если установка одной из этих категорий локалей удается, тогда переменная окружения
LC_CTYPEтакже будет установлена соответствующим образом в текущей среде процесса перед инициализацией среды выполнения Python. Это гарантирует, что обновленное значение видно как интерпретатором, так и другими компонентами, чувствительными к локали, работающими в том же процессе (например, библиотекой GNUreadline), а также в дочерних процессах (независимо от того, выполняют ли эти процессы интерпретатор Python), а также при операциях запроса среды, а не текущей C локали (например, собственная функция Pythonlocale.getdefaultlocale()).Настройка одной из этих локалей (явно или неявно через приведенное выше принудительное приведение локалей) автоматически включает обработчик ошибок
surrogateescapeдляsys.stdinиsys.stdout(sys.stderrпродолжает использоватьbackslashreplace, как и в любой другой локали). Это поведение обработки потоков можно переопределить, используяPYTHONIOENCODINGкак обычно.Для отладки установка
PYTHONCOERCECLOCALE=warnзаставит Python выводить сообщения об ошибках вstderr, если либо приведение локали активизируется, либо если локаль, которая должна была вызвать приведение, все еще активна при инициализации среды выполнения Python.Также обратите внимание, что даже когда приведение локалей отключено или оно не находит подходящей целевой локали,
PYTHONUTF8по-прежнему активируется по умолчанию в устаревших ASCII-локалях. Обе функции должны быть отключены, чтобы принудительно заставить интерпретатор использоватьASCIIвместоUTF-8для интерфейсов системы.Доступность: Unix.
Добавлена в версии 3.7: См. PEP 538 для получения более подробной информации.
-
PYTHONDEVMODE -
Если эта переменная окружения установлена в ненулевое значение, включите Режим разработки Python, добавляя дополнительные проверки во время выполнения, которые слишком дороги для включения по умолчанию. Это эквивалентно установке опции
-Xdev.Добавлена в версии 3.7.
-
PYTHONUTF8 -
Если установлено значение
1, включите Режим UTF-8 Python.Если установлено значение
0, отключите Режим UTF-8 Python.Установка любого другого ненулевого значения приводит к ошибке во время инициализации интерпретатора.
Добавлена в версии 3.7.
-
PYTHONWARNDEFAULTENCODING -
Если эта переменная окружения установлена в ненулевое значение, выводится
EncodingWarningпри использовании локали-специфичной кодировки по умолчанию.См. Дополнительная проверка на EncodingWarning для получения подробностей.
Добавлена в версии 3.10.
-
PYTHONNODEBUGRANGES -
Если эта переменная установлена, отключается включение таблиц, отображающих дополнительную информацию о расположении (конец строки, смещение начальной и конечной колонки) для каждой инструкции в объектах кода. Это полезно при желании иметь меньшие объекты кода и файлы pyc, а также при подавлении дополнительных визуальных индикаторов расположения, когда интерпретатор отображает трассировки.
Добавлена в версии 3.11.
-
PYTHONPERFSUPPORT -
Если эта переменная установлена в ненулевое значение, это включает поддержку профилировщика Linux
perf, чтобы Python-вызовы могли быть обнаружены им.Если установлено значение
0, отключить поддержку профилировщика Linuxperf.См. также опцию командной строки
-X perfи Поддержка Python для профилировщика Linux perf.Добавлена в версии 3.12.
-
PYTHON_PERF_JIT_SUPPORT -
Если эта переменная установлена в ненулевое значение, это включает поддержку профилировщика Linux
perf, чтобы Python-вызовы могли быть обнаружены им с использованием информации DWARF.Если установлено значение
0, отключить поддержку профилировщика Linuxperf.См. также опцию командной строки
-X perf_jitи Поддержка Python для профилировщика Linux perf.Добавлена в версии 3.13.
-
PYTHON_CPU_COUNT -
Если эта переменная установлена в положительное целое число, она переопределяет возвращаемые значения
os.cpu_count()иos.process_cpu_count().См. также опцию командной строки
-X cpu_count.Добавлена в версии 3.13.
-
PYTHON_FROZEN_MODULES -
Если эта переменная установлена в
onилиoff, она определяет, будут ли модули, замороженные в исполняемый файл, игнорироваться механизмом импорта. Значениеonозначает, что они будут импортированы, аoff— что они будут проигнорированы. По умолчанию этоonдля билд-версий без отладки (стандартный случай) иoffдля билд-версий с отладкой. Обратите внимание, что модулиimportlib_bootstrapиimportlib_bootstrap_externalвсегда используются, даже если этот флаг установлен вoff.См. также опцию командной строки
-X frozen_modules.Добавлен в версии 3.13.
-
PYTHON_COLORS -
Если эта переменная установлена в
1, интерпретатор будет форматировать вывод различного рода в цветах. Установка её в0отключает эту функцию. См. также Управление цветом.Добавлен в версии 3.13.
-
PYTHON_BASIC_REPL -
Если эта переменная установлена в
1, интерпретатор не будет пытаться загрузить основанный на Python REPL, который требуетcursesиreadline, а вместо этого будет использовать традиционный основанный на парсере REPL.Добавлен в версии 3.13.
-
PYTHON_HISTORY -
Эта переменная среды может быть использована для указания местоположения файла истории (по умолчанию, это
.python_historyв домашнем каталоге пользователя).Добавлен в версии 3.13.
-
PYTHON_GIL -
Если эта переменная установлена в
1, глобальная блокировка интерпретатора (GIL) будет принудительно включена. Установка её в0принудительно отключает GIL (требуется, чтобы Python был сконфигурирован с опцией компиляции--disable-gil).См. также опцию командной строки
-X gil, которая имеет приоритет над этой переменной, и Бесблокировочный CPython.Добавлен в версии 3.13.
1.2.1. Переменные режима отладки
-
PYTHONDUMPREFS -
Если установлена, Python будет выводить информацию об объектах и счётчиках ссылок, которые остались живыми после завершения интерпретатора.
Требуется, чтобы Python был сконфигурирован с опцией компиляции
--with-trace-refs.
-
PYTHONDUMPREFSFILE -
Если установлена, Python будет выводить информацию об объектах и счётчиках ссылок, которые остались живыми после завершения интерпретатора, в файл по пути, указанному в значении этой переменной среды.
Требуется, чтобы Python был сконфигурирован с опцией компиляции
--with-trace-refs.Добавлен в версии 3.11.
-
PYTHON_PRESITE -
Если эта переменная установлена в имя модуля, этот модуль будет импортирован на ранней стадии жизненного цикла интерпретатора, до выполнения модуля
siteи до создания модуля__main__. Поэтому импортируемый модуль не рассматривается как__main__.Это может быть использовано для выполнения кода на ранних этапах инициализации Python.
Для импорта подмодуля используйте
package.moduleв качестве значения, подобно строке импорта.См. также опцию командной строки
-X presite, которая имеет приоритет над этой переменной.Требуется, чтобы Python был сконфигурирован с опцией компиляции
--with-pydebug.Добавлен в версии 3.13.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/using/cmdline.html