sys – Системные параметры и функции
Этот модуль предоставляет доступ к некоторым переменным, используемым или поддерживаемым интерпретатором, а также к функциям, которые тесно взаимодействуют с интерпретатором. Он всегда доступен. Если явно не указано иное, все переменные доступны только для чтения.
- sys.abi_info¶
Добавлено в версии 3.15.
Объект, содержащий информацию об ABI текущего выполняющегося интерпретатора Python. Он должен включать информацию, влияющую на CPython ABI таким образом, что требуется конкретная сборка интерпретатора, выбранная из вариантов, которые могут сосуществовать на одной машине. Например, он не кодирует базовую ОС (Linux или Windows), но включает размер указателя, поскольку некоторые системы поддерживают как 32-, так и 64-битные сборки. Доступные записи одинаковы на всех платформах; например, pointer_size доступен даже на архитектурах только с 64 битами.
Доступны следующие атрибуты:
- abi_info.pointer_bits¶
Ширина указателей в битах как целое число, эквивалентное
8 * sizeof(void *). Обычно это32или64.
- abi_info.free_threaded¶
Логическое значение, указывающее, был ли интерпретатор собран с поддержкой свободной многопоточности. Это отражает либо наличие опции
--disable-gilconfigure(в Unix), либо установку свойстваDisableGil(в Windows).
- abi_info.debug¶
Логическое значение, указывающее, был ли интерпретатор собран в режиме отладки. Это отражает либо наличие опции
--with-pydebugconfigure(в Unix), либо конфигурацииDebug(в Windows).
- sys.abiflags¶
В системах POSIX, где Python был собран со стандартным сценарием
configure, он содержит флаги ABI, как указано в PEP 3149.Добавлено в версии 3.2.
Изменено в версии 3.8: Флаги по умолчанию стали пустой строкой (флаг
mдля pymalloc был удалён).Доступность: Unix.
- sys.addaudithook(hook)¶
Добавляет вызываемый объект hook в список активных аудиторских хуков для текущего (под)интерпретатора.
Когда событие аудита инициируется через функцию
sys.audit(), каждый хук вызывается в порядке его добавления с именем события и кортежем аргументов. Собственные (native) хуки, добавленные с помощьюPySys_AddAuditHook(), вызываются первыми, за ними следуют хуки, добавленные в текущем (под)интерпретаторе. Затем хуки могут регистрировать событие, вызывать исключение для прерывания операции или полностью завершать процесс.Обратите внимание, что аудиторские хуки предназначены в первую очередь для сбора информации о внутренних или иным образом ненаблюдаемых действиях, будь то в Python или библиотеках, написанных на Python. Они не подходят для реализации «песочницы». В частности, вредоносный код может тривиально отключать или обходить хуки, добавленные с помощью этой функции. Как минимум, любые критичные с точки зрения безопасности хуки должны быть добавлены с помощью C API
PySys_AddAuditHook()до инициализации среды выполнения, а любые модули, допускающие произвольное изменение памяти (например,ctypes), должны быть полностью удалены или находиться под тщательным контролем.Вызов
sys.addaudithook()сам по себе вызывает событие аудита с именемsys.addaudithookбез аргументов. Если какой-либо существующий хук вызывает исключение, производное отRuntimeError, новый хук не будет добавлен, а исключение будет подавлено. В результате вызывающая сторона не может предполагать, что её хук был добавлен, если только она не контролирует все существующие хуки.Смотрите таблицу событий аудита для всех событий, вызываемых CPython, и PEP 578 для обсуждения оригинального дизайна.
Добавлено в версии 3.8.
Изменено в версии 3.8.1: Исключения, производные от
Exception, но не отRuntimeError, больше не подавляются.Особенность реализации CPython: Когда трассировка включена (см.
settrace()), хуки Python трассируются только в том случае, если вызываемый объект имеет свойство__cantrace__, установленное в истинное значение. В противном случае функции трассировки пропускают хук.
- sys.argv¶
Список аргументов командной строки, переданных сценарию Python.
argv[0]– это имя сценария (зависит от операционной системы, является ли это полным путём или нет). Если команда была выполнена с использованием опции командной строки-cинтерпретатора,argv[0]устанавливается в строку'-c'. Если интерпретатору Python не было передано имя сценария,argv[0]– пустая строка.Для перебора стандартного ввода или списка файлов, переданных в командной строке, обратитесь к модулю
fileinput.См. также
sys.orig_argv.Примечание
В Unix аргументы командной строки передаются от ОС в виде байтов. Python декодирует их, используя кодировку файловой системы и обработчик ошибок «surrogateescape». Когда необходимы исходные байты, их можно получить с помощью
[os.fsencode(arg) for arg in sys.argv].
- sys.audit(event, *args)¶
Вызывает событие аудита и запускает все активные аудиторские хуки. event – это строка, идентифицирующая событие, а args может содержать необязательные аргументы с дополнительной информацией о событии. Количество и типы аргументов для данного события считаются публичным и стабильным API и не должны изменяться между версиями.
Например, одно событие аудита называется
os.chdir. Это событие имеет один аргумент с именем path, который будет содержать запрошенный новый рабочий каталог.sys.audit()вызовет существующие аудиторные хуки, передавая имя события и аргументы, и повторно возбудит первое исключение из любого хука. В общем случае, если исключение возникло, его не следует обрабатывать, и процесс должен быть завершён как можно быстрее. Это позволяет реализациям хуков решать, как реагировать на конкретные события: они могут просто зарегистрировать событие или прервать операцию, возбудив исключение.Хуки добавляются с помощью функций
sys.addaudithook()илиPySys_AddAuditHook().Нативным эквивалентом этой функции является
PySys_Audit(). По возможности предпочтительнее использовать нативную функцию.См. таблицу аудиторных событий для всех событий, возбуждаемых CPython.
Добавлено в версии 3.8.
- sys.base_exec_prefix¶
Эквивалентно
exec_prefix, но относится к базовой установке Python.При работе в виртуальных окружениях
exec_prefixперезаписывается в префикс виртуального окружения.base_exec_prefix, напротив, не изменяется и всегда указывает на базовую установку Python. Обратитесь к виртуальным окружениям для получения дополнительной информации.Добавлено в версии 3.3.
- sys.base_prefix¶
Эквивалентно
prefix, но относится к базовой установке Python.При работе в виртуальном окружении
prefixперезаписывается в префикс виртуального окружения.base_prefix, напротив, не изменяется и всегда указывает на базовую установку Python. Обратитесь к виртуальным окружениям для получения дополнительной информации.Добавлено в версии 3.3.
- sys.byteorder¶
Индикатор нативного порядка байтов. Он будет иметь значение
'big'на платформах с обратным порядком байтов (big-endian, от старшего к младшему), и'little'на платформах с прямым порядком байтов (little-endian, от младшего к старшему).
- sys.builtin_module_names¶
Кортеж строк, содержащий имена всех модулей, скомпилированных в этот интерпретатор Python. (Эта информация недоступна никаким другим способом –
modules.keys()перечисляет только импортированные модули.)См. также список
sys.stdlib_module_names.
- sys.call_tracing(func, args)¶
Вызывает
func(*args), пока трассировка включена. Состояние трассировки сохраняется и восстанавливается после. Это предназначено для вызова из отладчика из контрольной точки, чтобы рекурсивно отлаживать или профилировать другой код.Трассировка приостанавливается при вызове функции трассировки, установленной с помощью
settrace()илиsetprofile(), чтобы избежать бесконечной рекурсии.call_tracing()включает явную рекурсию функции трассировки.
- sys.copyright¶
Строка, содержащая авторские права, относящиеся к интерпретатору Python.
- sys._clear_type_cache()¶
Очищает внутренний кеш типов. Кеш типов используется для ускорения поиска атрибутов и методов. Используйте функцию только для удаления ненужных ссылок при отладке утечек ссылок.
Эта функция должна использоваться только для внутренних и специализированных целей.
Устарело с версии 3.13: Вместо этого используйте более общую функцию
_clear_internal_caches().
- sys._clear_internal_caches()¶
Очищает все внутренние кеши, связанные с производительностью. Используйте эту функцию только для освобождения ненужных ссылок и блоков памяти при поиске утечек.
Добавлено в версии 3.13.
- sys._current_frames()¶
Возвращает словарь, отображающий идентификатор каждого потока в самый верхний стековый фрейм, активный в этом потоке на момент вызова функции. Обратите внимание, что функции модуля
tracebackмогут построить стек вызовов на основе такого фрейма.Это наиболее полезно для отладки взаимоблокировок: эта функция не требует участия заблокированных потоков, и их стеки вызовов заморожены до тех пор, пока они остаются заблокированными. Фрейм, возвращённый для незаблокированного потока, может не иметь отношения к текущей активности этого потока к моменту, когда вызывающий код просматривает фрейм.
Эта функция должна использоваться только для внутренних и специализированных целей.
Вызывает событие аудита
sys._current_framesбез аргументов.
- sys._current_exceptions()¶
Возвращает словарь, отображающий идентификатор каждого потока в самое верхнее исключение, активное в этом потоке на момент вызова функции. Если поток в данный момент не обрабатывает исключение, он не включается в результирующий словарь.
Наиболее полезен для статистического профилирования.
Эту функцию следует использовать только для внутренних и специальных целей.
Вызывает событие аудита
sys._current_exceptionsбез аргументов.Изменено в версии 3.12: Каждое значение в словаре теперь является одним экземпляром исключения, а не кортежем из 3 элементов, как возвращается из
sys.exc_info().
- sys.breakpointhook()¶
Эта функция-перехватчик вызывается встроенной
breakpoint(). По умолчанию она запускает отладчикpdb, но может быть установлена на любую другую функцию, чтобы можно было выбрать используемый отладчик.Сигнатура этой функции зависит от того, что она вызывает. Например, привязка по умолчанию (например,
pdb.set_trace()) не ожидает аргументов, но её можно привязать к функции, ожидающей дополнительные аргументы (позиционные и/или ключевые). Встроенная функцияbreakpoint()передаёт свои*argsи**kwsнапрямую. То, что возвращаетbreakpointhooks(), возвращается изbreakpoint().Реализация по умолчанию сначала проверяет переменную окружения
PYTHONBREAKPOINT. Если она установлена в"0", то эта функция немедленно возвращает управление; то есть это холостая операция. Если переменная окружения не установлена или установлена в пустую строку, вызываетсяpdb.set_trace(). В противном случае эта переменная должна задавать имя функции для выполнения, используя точечную нотацию импорта Python, напримерpackage.subpackage.module.function. В этом случаеpackage.subpackage.moduleбудет импортирован, и результирующий модуль должен иметь вызываемый объект с именемfunction(). Он выполняется с передачей*argsи**kws, и то, что возвращаетfunction(),sys.breakpointhook()возвращает встроенной функцииbreakpoint().Обратите внимание, что если при импорте вызываемого объекта, заданного
PYTHONBREAKPOINT, что-то идёт не так, сообщается оRuntimeWarning, и точка останова игнорируется.Также обратите внимание, что если
sys.breakpointhook()переопределён программно,PYTHONBREAKPOINTне учитывается.Добавлено в версии 3.7.
- sys._debugmallocstats()¶
Выводит низкоуровневую информацию в stderr о состоянии распределителя памяти CPython.
Если Python собран в режиме отладки (
configure --with-pydebug option), он также выполняет некоторые ресурсоёмкие проверки внутренней согласованности.Добавлено в версии 3.3.
Особенность реализации CPython: Эта функция специфична для CPython. Точный формат вывода здесь не определён и может измениться.
- sys.dllhandle¶
Целое число, задающее дескриптор DLL Python.
Доступность: Windows.
- sys.displayhook(value)¶
Если value не равно
None, эта функция выводитrepr(value)вsys.stdoutи сохраняет value вbuiltins._. Еслиrepr(value)не кодируется вsys.stdout.encodingс обработчиком ошибокsys.stdout.errors(который, вероятно,'strict'), кодирует его вsys.stdout.encodingс обработчиком ошибок'backslashreplace'.sys.displayhookвызывается для результата вычисления выражения, введённого в интерактивном сеансе Python. Отображение этих значений можно настроить, присвоив другую функцию с одним аргументомsys.displayhook.Псевдокод:
pythondef displayhook(value): if value is None: return # Установите '_' в None, чтобы избежать рекурсии builtins._ = None text = repr(value) try: sys.stdout.write(text) except UnicodeEncodeError: bytes = text.encode(sys.stdout.encoding, 'backslashreplace') if hasattr(sys.stdout, 'buffer'): sys.stdout.buffer.write(bytes) else: text = bytes.decode(sys.stdout.encoding, 'strict') sys.stdout.write(text) sys.stdout.write("\n") builtins._ = valueИзменено в версии 3.2: Используйте обработчик ошибок
'backslashreplace'дляUnicodeEncodeError.
- sys.dont_write_bytecode¶
Если это истина, Python не будет пытаться записывать файлы
.pycпри импорте исходных модулей. Это значение изначально устанавливается вTrueилиFalseв зависимости от параметра командной строки-Bи переменной окруженияPYTHONDONTWRITEBYTECODE, но его можно установить самостоятельно для управления генерацией файлов байт-кода.
- sys._emscripten_info¶
Именованный кортеж, содержащий информацию об окружении на платформе wasm32-emscripten. Именованный кортеж является предварительным и может измениться в будущем.
- _emscripten_info.emscripten_version¶
Версия Emscripten в виде кортежа целых чисел (major, minor, micro), например
(3, 1, 8).
- _emscripten_info.runtime¶
Строка среды выполнения, например, user agent браузера,
'Node.js v14.18.2'или'UNKNOWN'.
- _emscripten_info.pthreads¶
True, если Python скомпилирован с поддержкой Emscripten pthreads.
True, если Python скомпилирован с поддержкой разделяемой памяти.
Доступность: Emscripten.
Добавлено в версии 3.11.
- sys.pycache_prefix¶
Если этот параметр установлен (не
None), Python будет записывать файлы.pycкеша байт-кода в параллельное дерево каталогов с корнем в этом каталоге (и читать их оттуда), а не из каталогов__pycache__в дереве исходного кода. Любые каталоги__pycache__в дереве исходного кода будут игнорироваться, а новые файлы.pycбудут записываться внутри префикса pycache. Таким образом, при использованииcompileallв качестве этапа предварительной сборки необходимо убедиться, что он запускается с тем же префиксом pycache (если он есть), который будет использоваться во время выполнения.Относительный путь интерпретируется относительно текущего рабочего каталога.
Это значение изначально устанавливается на основе значения параметра командной строки
-Xpycache_prefix=PATHили переменной окруженияPYTHONPYCACHEPREFIX(командная строка имеет приоритет). Если ни то, ни другое не установлено, оно равноNone.Добавлено в версии 3.8.
- sys.excepthook(type, value, traceback)¶
Эта функция выводит заданный traceback и исключение в
sys.stderr.Когда возникает и не перехватывается исключение, отличное от
SystemExit, интерпретатор вызываетsys.excepthookс тремя аргументами: классом исключения, экземпляром исключения и объектом traceback. В интерактивном сеансе это происходит непосредственно перед возвратом управления в приглашение; в программе Python – непосредственно перед завершением программы. Обработку таких исключений верхнего уровня можно настроить, присвоив другую трёхаргументную функцию переменнойsys.excepthook.Возбуждает событие аудита
sys.excepthookс аргументамиhook,type,value,tracebackпри возникновении неперехваченного исключения. Если хук не установлен,hookможет бытьNone. Если любой хук возбуждает исключение, производное отRuntimeError, вызов хука будет подавлен. В противном случае исключение аудит-хука будет зарегистрировано как неперехватываемое, и будет вызванаsys.excepthook.Смотрите также
Функция
sys.unraisablehook()обрабатывает неперехватываемые исключения, а функцияthreading.excepthook()обрабатывает исключения, возбуждённыеthreading.Thread.run().
- sys.__breakpointhook__¶
- sys.__displayhook__¶
- sys.__excepthook__¶
- sys.__unraisablehook__¶
Эти объекты содержат исходные значения
breakpointhook,displayhook,excepthookиunraisablehookна момент запуска программы. Они сохраняются, чтобыbreakpointhook,displayhook,excepthookиunraisablehookможно было восстановить, если они будут заменены сломанными или альтернативными объектами.Добавлено в версии 3.7: __breakpointhook__
Добавлено в версии 3.8: __unraisablehook__
- sys.exception()¶
Эта функция при вызове во время выполнения обработчика исключений (например, предложения
exceptилиexcept*) возвращает экземпляр исключения, который был перехвачен этим обработчиком. Когда обработчики исключений вложены друг в друга, доступно только исключение, обрабатываемое самым внутренним обработчиком.Если ни один обработчик исключений не выполняется, эта функция возвращает
None.Добавлено в версии 3.11.
- sys.exc_info()¶
Эта функция возвращает представление обработанного исключения в старом стиле. Если в данный момент обрабатывается исключение
e(так чтоexception()вернётe),exc_info()возвращает кортеж(type(e), e, e.__traceback__). То есть кортеж, содержащий тип исключения (подклассBaseException), само исключение и объект traceback, который обычно инкапсулирует стек вызовов в точке, где произошло последнее исключение.Если нигде в стеке не обрабатывается исключение, эта функция возвращает кортеж, содержащий три значения
None.Изменено в версии 3.11: Поля
typeиtracebackтеперь выводятся изvalue(экземпляра исключения), поэтому при изменении исключения во время его обработки изменения отражаются в результатах последующих вызововexc_info().
- sys.exec_prefix¶
Строка, содержащая префикс каталога, специфичный для данного сайта, в который устанавливаются платформо-зависимые файлы Python; по умолчанию это также
'/usr/local'. Этот префикс можно задать во время сборки с помощью аргумента--exec-prefixсценария configure. В частности, все конфигурационные файлы (например, файл заголовкаpyconfig.h) устанавливаются в каталогexec_prefix/lib/pythonX.Y/config, а модули разделяемых библиотек устанавливаются вexec_prefix/lib/pythonX.Y/lib-dynload, где X.Y – номер версии Python, например3.2.Примечание
Если действует виртуальное окружение, этот
exec_prefixбудет указывать на виртуальное окружение. Значение для установки Python по-прежнему доступно черезbase_exec_prefix. За дополнительной информацией обращайтесь к Виртуальные окружения.Изменено в версии 3.14: При работе в виртуальном окружении,
prefixиexec_prefixтеперь устанавливаются в префикс виртуального окружения с помощью инициализации путей, а неsite. Это означает, чтоprefixиexec_prefixвсегда указывают на виртуальное окружение, даже еслиsiteотключено (-S).
- sys.executable¶
Строка, содержащая абсолютный путь к исполняемому двоичному файлу интерпретатора Python на системах, где это имеет смысл. Если Python не может получить реальный путь к своему исполняемому файлу,
sys.executableбудет пустой строкой илиNone.
- sys.exit([arg])¶
Возбуждает исключение
SystemExit, сигнализирующее о намерении выйти из интерпретатора.Необязательный аргумент arg может быть целым числом, задающим код возврата (по умолчанию 0), или объектом другого типа. Если это целое число, то 0 считается «успешным завершением», а любое ненулевое значение считается «аварийным завершением» в оболочках и подобных системах. Большинство систем требуют, чтобы код возврата находился в диапазоне 0–127, иначе результат не определён. В некоторых системах существует соглашение о присвоении определённых значений определённым кодам возврата, но такие соглашения обычно неразвиты; программы Unix обычно используют 2 для ошибок синтаксиса командной строки и 1 для всех остальных ошибок. Если передан объект другого типа, то вызов
Noneэквивалентен передаче нуля, а любой другой объект выводится вstderr, при этом код возврата становится 1. В частности,sys.exit("some error message")– это быстрый способ завершить программу при возникновении ошибки.Поскольку
exit()в конечном счёте «всего лишь» возбуждает исключение, он завершает процесс только при вызове из главного потока, при условии, что исключение не перехватывается. Действия по очистке, заданные в предложенияхfinallyоператоровtry, выполняются, и существует возможность перехватить попытку выхода на внешнем уровне.Изменено в версии 3.6: Если во время очистки после перехвата
SystemExitинтерпретатором Python происходит ошибка (например, ошибка сброса буферизованных данных в стандартных потоках), код возврата изменяется на 120.
- sys.flags¶
Именованный кортеж flags предоставляет состояние флагов командной строки. К флагам следует обращаться только по имени, а не по индексу. Атрибуты доступны только для чтения.
- flags.debug¶
- flags.inspect¶
- flags.interactive¶
- flags.isolated¶
- flags.optimize¶
- flags.dont_write_bytecode¶
- flags.no_user_site¶
- flags.no_site¶
- flags.ignore_environment¶
- flags.verbose¶
- flags.bytes_warning¶
- flags.quiet¶
- flags.hash_randomization¶
- flags.dev_mode¶
- flags.utf8_mode¶
- flags.safe_path¶
- flags.int_max_str_digits¶
-X int_max_str_digits(ограничение длины при преобразовании целого числа в строку)- flags.warn_default_encoding¶
- flags.gil¶
- flags.thread_inherit_context¶
- flags.context_aware_warnings¶
Изменено в версии 3.2: Добавлен атрибут
quietдля нового флага-q.Добавлено в версии 3.2.3: Атрибут
hash_randomization.Изменено в версии 3.3: Удалён устаревший атрибут
division_warning.Изменено в версии 3.4: Добавлен атрибут
isolatedдля флага-Iisolated.Изменено в версии 3.7: Добавлен атрибут
dev_modeдля нового режима Python Development Mode и атрибутutf8_modeдля нового флага-Xutf8.Изменено в версии 3.10: Добавлен атрибут
warn_default_encodingдля флага-Xwarn_default_encoding.Изменено в версии 3.11: Добавлен атрибут
safe_pathдля опции-P.Изменено в версии 3.11: Добавлен атрибут
int_max_str_digits.Изменено в версии 3.13: Добавлен атрибут
gil.Изменено в версии 3.14: Добавлен атрибут
thread_inherit_context.Изменено в версии 3.14: Добавлен атрибут
context_aware_warnings.
- sys.float_info¶
Именованный кортеж, содержащий информацию о типе float. Он содержит низкоуровневую информацию о точности и внутреннем представлении. Значения соответствуют различным константам с плавающей точкой, определённым в стандартном заголовочном файле
float.hдля языка программирования C; см. раздел 5.2.4.2.2 стандарта ISO/IEC C 1999 года [C99], «Характеристики типов с плавающей точкой», для подробностей.Атрибуты float_infoименованного кортежа¶атрибут
макрос float.h
объяснение
- float_info.epsilon¶
DBL_EPSILONразница между 1.0 и наименьшим значением, превышающим 1.0, представимым в виде float.
См. также
math.ulp().- float_info.dig¶
DBL_DIGМаксимальное количество десятичных цифр, которое может быть точно представлено в float; см. ниже.
- float_info.mant_dig¶
DBL_MANT_DIGТочность float: количество цифр по основанию
radixв мантиссе числа float.- float_info.max¶
DBL_MAXМаксимальное представимое положительное конечное число типа float.
- float_info.max_exp¶
DBL_MAX_EXPМаксимальное целое число e, такое что
radix**(e-1)является представимым конечным числом float.- float_info.max_10_exp¶
DBL_MAX_10_EXPМаксимальное целое число e, такое что
10**eнаходится в диапазоне представимых конечных чисел с плавающей запятой.- float_info.min¶
DBL_MINМинимальное представимое положительное нормализованное число float.
Используйте
math.ulp(0.0), чтобы получить наименьшее положительное денормализованное представимое число float.- float_info.min_exp¶
DBL_MIN_EXPНаименьшее целое число e, для которого
radix**(e-1)является нормализованным числом с плавающей запятой.- float_info.min_10_exp¶
DBL_MIN_10_EXPНаименьшее целое число e, для которого
10**eявляется нормализованным числом с плавающей запятой.- float_info.radix¶
FLT_RADIXОснование (radix) представления экспоненты.
- float_info.rounds¶
FLT_ROUNDSЦелое число, представляющее режим округления для арифметики с плавающей запятой. Оно отражает значение макроса системы
FLT_ROUNDSна момент запуска интерпретатора:-1: неопределяемо0: к нулю1: к ближайшему2: к положительной бесконечности3: к отрицательной бесконечности
Все остальные значения для
FLT_ROUNDSхарактеризуют поведение округления, определяемое реализацией.Атрибут
sys.float_info.digтребует дополнительного пояснения. Еслиs– это любая строка, представляющая десятичное число с не более чемsys.float_info.digзначащими цифрами, то преобразованиеsв число с плавающей запятой и обратно восстановит строку, представляющую то же десятичное значение:python>>> import sys >>> sys.float_info.dig 15 >>> s = '3.14159265358979' # десятичная строка с 15 значащими цифрами >>> format(float(s), '.15g') # преобразовать во float и обратно -> то же значение '3.14159265358979'Но для строк с более чем
sys.float_info.digзначащими цифрами это верно не всегда:python>>> s = '9876543211234567' # 16 значащих цифр — слишком много! >>> format(float(s), '.16g') # преобразование изменяет значение '9876543211234568'
- sys.float_repr_style¶
Строка, указывающая, как функция
repr()ведёт себя для чисел с плавающей запятой. Если строка имеет значение'short', то для конечного числа с плавающей запятойxфункцияrepr(x)стремится создать короткую строку, обладающую тем свойством, чтоfloat(repr(x)) == x. Это обычное поведение в Python 3.1 и новее. В противном случаеfloat_repr_styleимеет значение'legacy'иrepr(x)ведёт себя так же, как в версиях Python до 3.1.Добавлено в версии 3.1.
- sys.getallocatedblocks()¶
Возвращает количество блоков памяти, выделенных в данный момент интерпретатором, независимо от их размера. Эта функция в основном полезна для отслеживания и отладки утечек памяти. Из-за внутренних кэшей интерпретатора результат может отличаться от вызова к вызову; возможно, потребуется вызвать
_clear_internal_caches()иgc.collect(), чтобы получить более предсказуемые результаты.Если сборка или реализация Python не может разумно вычислить эту информацию,
getallocatedblocks()может вместо этого вернуть 0.Добавлено в версии 3.4.
- sys.getunicodeinternedsize()¶
Возвращает количество интернированных объектов Unicode.
Добавлено в версии 3.12.
- sys.getandroidapilevel()¶
Возвращает уровень API Android на момент сборки в виде целого числа. Он представляет минимальную версию Android, на которой может работать данная сборка Python. Информацию о версии времени выполнения см. в
platform.android_ver().Доступность: Android.
Добавлено в версии 3.7.
- sys.getdefaultencoding()¶
Возвращает
'utf-8'. Это имя кодировки строк по умолчанию, используемой в таких методах, какstr.encode().
- sys.getdlopenflags()¶
Возвращает текущее значение флагов, используемых для вызовов
dlopen(). Символические имена значений флагов можно найти в модулеos(константыRTLD_xxx, напримерos.RTLD_LAZY).Доступность: Unix.
- sys.getfilesystemencoding()¶
Возвращает кодировку файловой системы: кодировку, используемую с обработчиком ошибок файловой системы для преобразования между именами файлов в Unicode и байтовыми именами файлов. Обработчик ошибок файловой системы возвращается из
getfilesystemencodeerrors().Для наилучшей совместимости во всех случаях следует использовать str для имен файлов, хотя поддержка представления имен файлов в виде bytes также предусмотрена. Функции, принимающие или возвращающие имена файлов, должны поддерживать как str, так и bytes, и внутренне преобразовывать их в предпочтительное для системы представление.
os.fsencode()иos.fsdecode()следует использовать, чтобы гарантировать использование правильной кодировки и режима обработки ошибок.Кодировка файловой системы и обработчик ошибок настраиваются при запуске Python функцией
PyConfig_Read(): см. членыfilesystem_encodingиfilesystem_errorsизPyConfig.Изменено в версии 3.2: результат
getfilesystemencoding()больше не может бытьNone.Изменено в версии 3.6: Windows больше не гарантирует возврат
'mbcs'. См. PEP 529 и_enablelegacywindowsfsencoding()для получения дополнительной информации.Изменено в версии 3.7: Возвращает
'utf-8', если включён Python UTF-8 Mode.
- sys.getfilesystemencodeerrors()¶
Возвращает обработчик ошибок файловой системы: обработчик ошибок, используемый вместе с кодировкой файловой системы для преобразования между именами файлов в Unicode и в bytes. Кодировка файловой системы возвращается из
getfilesystemencoding().os.fsencode()иos.fsdecode()следует использовать, чтобы гарантировать использование правильной кодировки и режима обработки ошибок.Кодировка файловой системы и обработчик ошибок настраиваются при запуске Python функцией
PyConfig_Read(): см. членыfilesystem_encodingиfilesystem_errorsизPyConfig.Добавлено в версии 3.6.
- sys.get_int_max_str_digits()¶
Возвращает текущее значение ограничения длины преобразования целого числа в строку. См. также
set_int_max_str_digits().Добавлено в версии 3.11.
- sys.get_lazy_imports()¶
Возвращает текущий режим ленивых импортов в виде строки.
"normal": только импорты, явно помеченные ключевым словомlazy, являются ленивыми"all": все импорты верхнего уровня потенциально ленивы"none": все ленивые импорты подавлены (даже явно помеченные)
См. также
set_lazy_imports()и PEP 810.Добавлено в версии 3.15.
- sys.get_lazy_imports_filter()¶
Возвращает текущую функцию фильтра ленивых импортов или
None, если фильтр не установлен.Функция фильтра вызывается для каждого потенциально ленивого импорта, чтобы определить, должен ли он на самом деле быть ленивым. Подробнее о сигнатуре функции фильтра см.
set_lazy_imports_filter().Добавлено в версии 3.15.
- sys.getrefcount(object)¶
Возвращает счётчик ссылок на объект. Возвращаемое значение обычно на единицу больше ожидаемого, поскольку включает (временную) ссылку как аргумент
getrefcount().Обратите внимание, что возвращаемое значение может не отражать реальное количество ссылок на объект. Например, некоторые объекты являются бессмертными и имеют очень высокий счётчик ссылок, который не соответствует действительному числу ссылок. Следовательно, не полагайтесь на точность возвращаемого значения, за исключением значений 0 или 1.
Особенность реализации CPython: Бессмертные объекты с большим счётчиком ссылок можно определить с помощью
_is_immortal().Изменено в версии 3.12: Бессмертные объекты имеют очень большие счётчики ссылок, не соответствующие действительному числу ссылок на объект.
- sys.getrecursionlimit()¶
Возвращает текущее значение предела рекурсии – максимальной глубины стека интерпретатора Python. Этот предел предотвращает переполнение стека C из-за бесконечной рекурсии и аварийное завершение Python. Его можно установить с помощью
setrecursionlimit().
- sys.getsizeof(object[, default])¶
Возвращает размер объекта в байтах. Объектом может быть объект любого типа. Все встроенные объекты возвращают корректные результаты, но для сторонних расширений это необязательно верно, так как зависит от реализации.
Учитывается только потребление памяти, непосредственно относящееся к объекту, а не потребление памяти объектов, на которые он ссылается.
Если указан, будет возвращён default, если объект не предоставляет способа получить размер. В противном случае будет возбуждено
TypeError.getsizeof()вызывает метод__sizeof__объекта и добавляет дополнительные накладные расходы сборщика мусора, если объект управляется сборщиком мусора.См. рецепт рекурсивного sizeof для примера рекурсивного использования
getsizeof()для определения размера контейнеров и всего их содержимого.
- sys.getswitchinterval()¶
Возвращает интервал переключения потоков интерпретатора в секундах; см.
setswitchinterval().Добавлено в версии 3.2.
- sys._getframe([depth])¶
Возвращает объект фрейма из стека вызовов. Если задано необязательное целое число depth, возвращается объект фрейма, находящийся на указанное число вызовов ниже вершины стека. Если это глубже, чем стек вызовов, возбуждается
ValueError. По умолчанию depth равно нулю, при этом возвращается фрейм с вершины стека вызовов.Вызывает событие аудита
sys._getframeс аргументомframe.Особенность реализации CPython: Эту функцию следует использовать только для внутренних и специализированных целей. Не гарантируется, что она существует во всех реализациях Python.
- sys._getframemodulename([depth])¶
Возвращает имя модуля из стека вызовов. Если задано необязательное целое число depth, возвращается модуль, расположенный на указанное число вызовов ниже вершины стека. Если это глубже, чем стек вызовов, или модуль не идентифицирован, возвращается
None. По умолчанию depth равно нулю, при этом возвращается модуль с вершины стека вызовов.Вызывает событие аудита
sys._getframemodulenameс аргументомdepth.Особенность реализации CPython: Эту функцию следует использовать только для внутренних и специализированных целей. Не гарантируется, что она существует во всех реализациях Python.
Добавлено в версии 3.12.
- sys.getobjects(limit[, type])¶
Эта функция существует только в том случае, если CPython был собран с использованием специальной опции configure
--with-trace-refs. Она предназначена только для отладки проблем сборки мусора.Возвращает список до limit динамически выделенных объектов Python. Если указан type, включаются только объекты именно этого типа (не подтипы).
Объекты из списка небезопасны для использования. В частности, результат будет включать объекты из всех интерпретаторов, которые совместно используют состояние своего аллокатора объектов (то есть созданные с
PyInterpreterConfig.use_main_obmalloc, установленным в 1, или с использованиемPy_NewInterpreter(), а также главный интерпретатор). Смешивание объектов из разных интерпретаторов может привести к сбоям или другому неожиданному поведению.Особенность реализации CPython: Эту функцию следует использовать для специализированных целей. Не гарантируется, что она существует во всех реализациях Python.
Изменено в версии 3.14: Результат может включать объекты из других интерпретаторов.
- sys.getprofile()¶
Возвращает функцию профилировщика, установленную с помощью
setprofile().
- sys.gettrace()¶
Возвращает функцию трассировки, установленную с помощью
settrace().Особенность реализации CPython: Функция
gettrace()предназначена только для реализации отладчиков, профилировщиков, инструментов покрытия и тому подобного. Её поведение является частью платформы реализации, а не определения языка, и поэтому может быть недоступно во всех реализациях Python.
- sys.getwindowsversion()¶
Возвращает именованный кортеж, описывающий текущую версию Windows. Именованные элементы: major, minor, build, platform, service_pack, service_pack_minor, service_pack_major, suite_mask, product_type и platform_version. service_pack содержит строку, platform_version – 3-кортеж, а все остальные значения – целые числа. Компоненты также можно получать по имени, так что
sys.getwindowsversion()[0]эквивалентноsys.getwindowsversion().major. Для совместимости с предыдущими версиями только первые 5 элементов доступны по индексу.platform будет равно
2(VER_PLATFORM_WIN32_NT).product_type может принимать одно из следующих значений:
Константа
Значение
1(VER_NT_WORKSTATION)Система является рабочей станцией.
2(VER_NT_DOMAIN_CONTROLLER)Система является контроллером домена.
3(VER_NT_SERVER)Система является сервером, но не контроллером домена.
Эта функция является обёрткой Win32-функции
GetVersionEx(); обратитесь к документации Microsoft поOSVERSIONINFOEX()за дополнительной информацией об этих полях.platform_version возвращает основную версию, дополнительную версию и номер сборки текущей операционной системы, а не версию, которая эмулируется для процесса. Он предназначен для использования в журналировании, а не для определения возможностей.
Примечание
platform_version получает версию из kernel32.dll, которая может отличаться от версии ОС. Пожалуйста, используйте модуль
platformдля получения точной версии ОС.Доступность: Windows.
Изменено в версии 3.2: Изменён на именованный кортеж и добавлены service_pack_minor, service_pack_major, suite_mask и product_type.
Изменено в версии 3.6: Добавлен platform_version
- sys.get_asyncgen_hooks()¶
Возвращает объект asyncgen_hooks, который похож на
namedtupleвида(firstiter, finalizer), где firstiter и finalizer должны быть либоNone, либо функциями, принимающими итератор асинхронного генератора в качестве аргумента, и используются для планирования финализации асинхронного генератора циклом событий.Добавлено в версии 3.6: См. PEP 525 для подробностей.
Примечание
Эта функция была добавлена на временной основе (см. PEP 411 для подробностей).
- sys.get_coroutine_origin_tracking_depth()¶
Возвращает текущую глубину отслеживания происхождения корутины, установленную
set_coroutine_origin_tracking_depth().Добавлено в версии 3.7.
Примечание
Эта функция была добавлена на временной основе (см. PEP 411 для подробностей). Используйте её только для отладки.
- sys.hash_info¶
Именованный кортеж, содержащий параметры реализации числового хеширования. За дополнительными сведениями о хешировании числовых типов обращайтесь к Хеширование числовых типов.
- hash_info.width¶
Ширина в битах, используемая для хеш-значений
- hash_info.modulus¶
Простой модуль P, используемый в схеме числового хеширования
- hash_info.inf¶
Хеш-значение, возвращаемое для положительной бесконечности
- hash_info.nan¶
(Этот атрибут больше не используется)
- hash_info.imag¶
Множитель, используемый для мнимой части комплексного числа
- hash_info.algorithm¶
Название алгоритма хеширования для str, bytes и memoryview
- hash_info.hash_bits¶
Внутренний размер вывода алгоритма хеширования
- hash_info.seed_bits¶
Размер ключа начального заполнения (seed) алгоритма хеширования
- hash_info.cutoff¶
Порог для оптимизации DJBX33A для коротких строк в диапазоне
[1, cutoff).
Добавлено в версии 3.2.
Изменено в версии 3.4: Добавлены algorithm, hash_bits, seed_bits и cutoff.
- sys.hexversion¶
Номер версии, закодированный в виде одного целого числа. Гарантированно увеличивается с каждой версией, включая поддержку непроизводственных релизов. Например, чтобы проверить, что интерпретатор Python имеет версию не ниже 1.5.2, используйте:
pythonif sys.hexversion >= 0x010502F0: # использовать какую-то продвинутую возможность ... else: # использовать альтернативную реализацию или предупредить пользователя ...Это называется
hexversion, поскольку действительно выглядит осмысленно только при просмотре как результат передачи его встроенной функцииhex(). Именованный кортежsys.version_infoможно использовать для более удобочитаемого представления той же информации.Более подробную информацию о
hexversionможно найти в API and ABI Versioning.
- sys.implementation¶
Объект, содержащий информацию о реализации текущего интерпретатора Python. Следующие атрибуты должны существовать во всех реализациях Python.
name – это идентификатор реализации, например
'cpython'. Фактическая строка определяется реализацией Python, но гарантированно будет в нижнем регистре.version – это именованный кортеж в том же формате, что и
sys.version_info. Он представляет версию реализации Python. Это отличается от конкретной версии языка Python, которой соответствует текущий интерпретатор, и которую представляетsys.version_info. Например, для PyPy 1.8sys.implementation.versionможет бытьsys.version_info(1, 8, 0, 'final', 0), тогда какsys.version_infoбудетsys.version_info(2, 7, 2, 'final', 0). Для CPython они совпадают, поскольку это эталонная реализация.hexversion – это версия реализации в шестнадцатеричном формате, например
sys.hexversion.cache_tag – это тег, используемый механизмом импорта в именах файлов кэшированных модулей. По соглашению, это составное имя из названия и версии реализации, например
'cpython-33'. Однако реализация Python может использовать другое значение, если это уместно. Еслиcache_tagустановлено вNone, это означает, что кэширование модулей должно быть отключено.supports_isolated_interpreters – логическое значение, указывающее, поддерживает ли данная реализация несколько изолированных интерпретаторов. Для CPython на большинстве платформ это
True. Платформы с такой поддержкой реализуют низкоуровневый модуль_interpreters.Смотрите также
sys.implementationможет содержать дополнительные атрибуты, специфичные для реализации Python. Эти нестандартные атрибуты должны начинаться с символа подчеркивания и не описаны здесь. Независимо от содержимого,sys.implementationне будет изменяться во время работы интерпретатора и между версиями реализации. (Однако он может измениться между версиями языка Python.) См. PEP 421 для получения дополнительной информации.Добавлено в версии 3.3.
Изменено в версии 3.14: Добавлено поле
supports_isolated_interpreters.Примечание
Добавление новых обязательных атрибутов должно проходить через обычный процесс PEP. См. PEP 421 для получения дополнительной информации.
- sys.int_info¶
Именованный кортеж, содержащий информацию о внутреннем представлении целых чисел в Python. Атрибуты доступны только для чтения.
- int_info.bits_per_digit¶
Количество бит, содержащихся в каждом разряде. Целые числа Python хранятся внутри в системе счисления с основанием
2**int_info.bits_per_digit.
- int_info.sizeof_digit¶
Размер в байтах типа C, используемого для представления разряда.
- int_info.default_max_str_digits¶
Значение по умолчанию для
sys.get_int_max_str_digits(), если оно не настроено явно.
- int_info.str_digits_check_threshold¶
Минимальное ненулевое значение для
sys.set_int_max_str_digits(),PYTHONINTMAXSTRDIGITSили-X int_max_str_digits.
Добавлено в версии 3.1.
Изменено в версии 3.11: Добавлены
default_max_str_digitsиstr_digits_check_threshold.
- sys.__interactivehook__¶
Когда этот атрибут существует, его значение автоматически вызывается (без аргументов) при запуске интерпретатора в интерактивном режиме. Это происходит после чтения файла
PYTHONSTARTUP, чтобы вы могли установить этот хук там. Модульsiteустанавливает это.Вызывает событие аудита
cpython.run_interactivehookс объектом хука в качестве аргумента при вызове хука при запуске.Добавлено в версии 3.4.
- sys.intern(string)¶
Помещает string в таблицу интернированных строк и возвращает интернированную строку – либо саму string, либо её копию. Интернирование строк полезно для небольшого повышения производительности при поиске в словаре: если ключи в словаре интернированы и искомый ключ также интернирован, сравнение ключей (после хеширования) может выполняться сравнением указателей вместо сравнения строк. Обычно имена, используемые в программах Python, автоматически интернируются, а словари, используемые для хранения атрибутов модулей, классов или экземпляров, имеют интернированные ключи.
Интернированные строки не являются бессмертными; вы должны сохранять ссылку на возвращаемое значение
intern(), чтобы получить от этого пользу.
- sys._is_gil_enabled()¶
Возвращает
True, если GIL включён, иFalse, если он отключён.Добавлено в версии 3.13.
Особенность реализации CPython: Не гарантируется наличие во всех реализациях Python.
- sys.is_finalizing()¶
Возвращает
True, если основной интерпретатор Python завершает работу. В противном случае возвращаетFalse.См. также исключение
PythonFinalizationError.Добавлено в версии 3.5.
- sys._jit¶
Утилиты для наблюдения за JIT-компиляцией.
Особенность реализации CPython: JIT-компиляция – это экспериментальная деталь реализации CPython.
sys._jitможет отсутствовать или вести себя по-разному в разных реализациях Python, версиях или конфигурациях сборки.Добавлено в версии 3.14.
- _jit.is_available()¶
Возвращает
True, если текущий исполняемый файл Python поддерживает JIT-компиляцию, иFalseв противном случае. Это можно настроить при сборке CPython с помощью параметра--experimental-jitв Windows и параметра--enable-experimental-jitна всех остальных платформах.
- _jit.is_enabled()¶
Возвращает
True, если JIT-компиляция включена для текущего процесса Python (подразумеваетsys._jit.is_available()), иFalseв противном случае. Если JIT-компиляция доступна, это можно контролировать, установив переменную окруженияPYTHON_JITв0(отключено) или1(включено) при запуске интерпретатора.
- _jit.is_active()¶
Возвращает
True, если верхний фрейм Python в данный момент выполняет JIT-код (подразумеваетsys._jit.is_enabled()), иFalseв противном случае.Примечание
Эта функция предназначена для тестирования и отладки самого JIT. Не следует использовать её для других целей.
Примечание
Из-за природы трассирующих JIT-компиляторов повторные вызовы этой функции могут давать неожиданные результаты. Например, ветвление по её возвращаемому значению, скорее всего, приведёт к непредсказуемому поведению (если это вызовет вход или выход из JIT-кода):
python>>> for warmup in range(BIG_NUMBER): ... # Эта строка является "горячей" и в конечном итоге компилируется JIT: ... if sys._jit.is_active(): ... # Эта строка является "холодной" и выполняется в интерпретаторе: ... assert sys._jit.is_active() ... Traceback (most recent call last): File "<stdin>", line 5, in <module> assert sys._jit.is_active() ~~~~~~~~~~~~~~~~~~^^ AssertionError
- sys.last_exc¶
Эта переменная определена не всегда; она устанавливается в экземпляр исключения, когда исключение не обработано и интерпретатор выводит сообщение об ошибке и трассировку стека. Её предназначение – позволить интерактивному пользователю импортировать модуль отладчика и заняться посмертной отладкой без необходимости повторно выполнять команду, вызвавшую ошибку. (Обычное использование –
import pdb; pdb.pm()для входа в посмертный отладчик; см. модульpdbдля получения дополнительной информации.)Добавлено в версии 3.12.
- sys._is_immortal(op)¶
Возвращает
True, если переданный объект является бессмертным, иFalseв противном случае.Примечание
Объекты, которые являются бессмертными (и, следовательно, возвращают
Trueпри передаче этой функции), не гарантированно останутся бессмертными в будущих версиях, и наоборот для смертных объектов.Добавлено в версии 3.14.
Особенность реализации CPython: Эта функция должна использоваться только для специализированных целей. Не гарантируется её наличие во всех реализациях Python.
- sys._is_interned(string)¶
Возвращает
True, если переданная строка является «интернированной», иFalseв противном случае.Добавлено в версии 3.13.
Особенность реализации CPython: Не гарантируется наличие во всех реализациях Python.
- sys.last_type¶
- sys.last_value¶
- sys.last_traceback¶
Эти три переменные устарели; используйте
sys.last_excвместо них. Они содержат устаревшее представлениеsys.last_exc, возвращаемое изexc_info()выше.
- sys.maxsize¶
Целое число, задающее максимальное значение, которое может принимать переменная типа
Py_ssize_t. Обычно это2**31 - 1на 32-битной платформе и2**63 - 1на 64-битной платформе.
- sys.maxunicode¶
Целое число, задающее значение наибольшей кодовой точки Unicode, т.е.
1114111(0x10FFFFв шестнадцатеричной записи).Изменено в версии 3.3: До PEP 393,
sys.maxunicodeбыл либо0xFFFFлибо0x10FFFF, в зависимости от параметра конфигурации, который определял, хранятся ли символы Юникода как UCS-2 или UCS-4.
- sys.meta_path¶
Список объектов искателей метапути, у которых вызываются методы
find_spec(), чтобы определить, может ли один из объектов найти импортируемый модуль. По умолчанию он содержит записи, реализующие механизм импорта Python по умолчанию. Методfind_spec()вызывается как минимум с абсолютным именем импортируемого модуля. Если импортируемый модуль содержится в пакете, то атрибут__path__родительского пакета передаётся вторым аргументом. Метод возвращает спецификацию модуля илиNone, если модуль не удаётся найти.Смотрите также
importlib.abc.MetaPathFinderАбстрактный базовый класс, определяющий интерфейс объектов-искателей на
meta_path.importlib.machinery.ModuleSpecКонкретный класс, экземпляры которого должен возвращать
find_spec().
Изменено в версии 3.4: Спецификации модулей были введены в Python 3.4, согласно PEP 451.
Изменено в версии 3.12: Убран запасной вариант, который искал метод
find_module(), если записьmeta_pathне имела методаfind_spec().
- sys.modules¶
Это словарь, который сопоставляет имена модулей с уже загруженными модулями. Его можно изменять, чтобы принудительно перезагружать модули и выполнять другие трюки. Однако замена словаря не обязательно сработает ожидаемым образом, а удаление важных элементов из словаря может привести к сбою Python. Если вы хотите выполнять итерацию по этому глобальному словарю, всегда используйте
sys.modules.copy()илиtuple(sys.modules), чтобы избежать исключений, так как его размер может измениться во время итерации из-за побочных эффектов кода или активности в других потоках.
- sys.orig_argv¶
Список исходных аргументов командной строки, переданных исполняемому файлу Python.
Элементы
sys.orig_argv– это аргументы интерпретатора Python, а элементыsys.argv– аргументы программы пользователя. Аргументы, потреблённые самим интерпретатором, будут присутствовать вsys.orig_argvи отсутствовать вsys.argv.Добавлено в версии 3.10.
- sys.path¶
Список строк, задающий путь поиска модулей. Инициализируется из переменной окружения
PYTHONPATH, а также из значения по умолчанию, зависящего от установки.По умолчанию при инициализации при запуске программы потенциально небезопасный путь добавляется в начало
sys.path(перед записями, вставленными в результатеPYTHONPATH):python -m moduleкомандная строка: добавляет текущую рабочую директорию в начало.python script.pyкомандная строка: добавляет директорию сценария в начало. Если это символическая ссылка, разрешает символические ссылки.python -c codeиpython(REPL) командные строки: добавляют пустую строку, что означает текущую рабочую директорию.
Чтобы не добавлять этот потенциально небезопасный путь в начало, используйте параметр командной строки
-Pили переменную окруженияPYTHONSAFEPATH.Программа может изменять этот список для своих целей. В
sys.pathследует добавлять только строки; все остальные типы данных игнорируются при импорте.
- sys.path_hooks¶
Список вызываемых объектов, которые принимают аргумент-путь и пытаются создать искатель для этого пути. Если искатель может быть создан, вызываемый объект должен вернуть его, иначе возбудить
ImportError.Изначально описано в PEP 302.
- sys.path_importer_cache¶
Словарь, который служит кешем для объектов искателей. Ключами являются пути, переданные в
sys.path_hooks, а значениями – найденные искатели. Если путь является корректным путём файловой системы, но искатель не найден вsys.path_hooks, то сохраняетсяNone.Изначально описано в PEP 302.
- sys.platform¶
Строка, содержащая идентификатор платформы. Известные значения:
Система
platformзначениеAIX
'aix'Android
'android'Emscripten
'emscripten'FreeBSD
'freebsd'iOS
'ios'Linux
'linux'macOS
'darwin'Windows
'win32'Windows/Cygwin
'cygwin'WASI
'wasi'В Unix-системах, не перечисленных в таблице, значением является имя ОС в нижнем регистре, возвращаемое
uname -s, с добавлением первой части версии, возвращаемойuname -r, например'sunos5', на момент сборки Python. Если не требуется проверять конкретную версию системы, рекомендуется использовать следующий идиоматический способ:pythonif sys.platform.startswith('sunos'): # Код, специфичный для SunOS, здесь...Изменено в версии 3.3: В Linux
sys.platformбольше не содержит старшую версию. Теперь это всегда'linux'вместо'linux2'или'linux3'.Изменено в версии 3.8: На AIX
sys.platformбольше не содержит старшую версию. Теперь это всегда'aix'вместо'aix5'или'aix7'.Изменено в версии 3.13: На Android
sys.platformтеперь возвращает'android'вместо'linux'.Изменено в версии 3.14: На FreeBSD
sys.platformбольше не содержит старшую версию. Теперь это всегда'freebsd'вместо'freebsd13'или'freebsd14'.Смотрите также
os.nameимеет более грубую гранулярность.os.uname()предоставляет зависимую от системы информацию о версии.Модуль
platformпредоставляет подробные проверки идентичности системы.
- sys.platlibdir¶
Имя платформенно-зависимого каталога библиотек. Используется для построения пути к стандартной библиотеке и путей к установленным модулям расширений.
На большинстве платформ равно
"lib". На Fedora и SuSE на 64-битных платформах равно"lib64", что даёт следующие путиsys.path(гдеX.Y– версия Pythonmajor.minor):/usr/lib64/pythonX.Y/: Стандартная библиотека (например,os.pyмодуляos)/usr/lib64/pythonX.Y/lib-dynload/: Модули расширений C стандартной библиотеки (например, модульerrno; точное имя файла зависит от платформы)/usr/lib/pythonX.Y/site-packages/(всегда следует использоватьlib, а неsys.platlibdir): Сторонние модули/usr/lib64/pythonX.Y/site-packages/: Модули расширений C сторонних пакетов
Добавлено в версии 3.9.
- sys.prefix¶
Строка, задающая префикс каталога для конкретного сайта, в который устанавливаются платформенно-независимые файлы Python; в Unix по умолчанию это
/usr/local. Это можно установить во время сборки с помощью аргумента--prefixскрипта configure. Производные пути см. в Пути установки.Примечание
Если действует виртуальное окружение, этот
prefixбудет указывать на виртуальное окружение. Значение для установки Python по-прежнему будет доступно черезbase_prefix. Дополнительную информацию см. в Виртуальные окружения.Changed in version 3.14: When running under a virtual environment,
prefixandexec_prefixare now set to the virtual environment prefix by the path initialization, instead ofsite. This means thatprefixandexec_prefixalways point to the virtual environment, even whensiteis disabled (-S).
- sys.ps1¶
- sys.ps2¶
Строки, задающие основное и дополнительное приглашения интерпретатора. Они определены только в том случае, если интерпретатор работает в интерактивном режиме. В этом случае их начальные значения –
'>>> 'и'... '. Если любой из этих переменных присвоить нестроковый объект, егоstr()будет пересчитываться каждый раз, когда интерпретатор готовится прочитать новую интерактивную команду; это можно использовать для реализации динамического приглашения.
- sys.setdlopenflags(n)¶
Устанавливает флаги, используемые интерпретатором для вызовов
dlopen(), например, при загрузке модулей расширений. Среди прочего, это позволяет выполнять ленивое разрешение символов при импорте модуля, если вызвать какsys.setdlopenflags(0). Для обеспечения общего доступа к символам между модулями расширений следует вызывать какsys.setdlopenflags(os.RTLD_GLOBAL). Символические имена значений флагов можно найти в модулеos(константыRTLD_xxx, напримерos.RTLD_LAZY).Доступность: Unix.
- sys.set_int_max_str_digits(maxdigits)¶
Устанавливает ограничение длины преобразования целых чисел в строки, используемое этим интерпретатором. См. также
get_int_max_str_digits().Добавлено в версии 3.11.
- sys.set_lazy_imports(mode)¶
Устанавливает глобальный режим ленивых импортов. Параметр mode должен быть одной из следующих строк:
"normal": Только импорты, явно помеченные ключевым словомlazy, являются ленивыми"all": Все импорты верхнего уровня становятся потенциально ленивыми"none": Все ленивые импорты подавляются (даже явно помеченные)
Эта функция предназначена для опытных пользователей, которым необходимо управлять ленивыми импортами во всём приложении. Разработчикам библиотек обычно не следует использовать эту функцию, поскольку она влияет на выполнение приложений во время выполнения.
В дополнение к режиму, ленивыми импортами можно управлять через фильтр, предоставляемый
set_lazy_imports_filter().См. также
get_lazy_imports()и PEP 810.Добавлено в версии 3.15.
- sys.set_lazy_imports_filter(filter)¶
Устанавливает колбэк фильтра ленивых импортов. Параметр filter должен быть вызываемым объектом или
Noneдля очистки фильтра.Функция фильтра вызывается для каждого потенциально ленивого импорта, чтобы определить, должен ли он быть действительно ленивым. Она должна иметь следующую сигнатуру:
pythondef filter(importing_module: str, imported_module: str, fromlist: tuple[str, ...] | None) -> boolГде:
importing_module – имя модуля, выполняющего импорт
imported_module – разрешённое имя импортируемого модуля (например,
lazy from .spam import eggsпередаётpackage.spam)fromlist – кортеж имён, импортируемых (для операторов
from ... import), илиNoneдля обычных импортов
Фильтр должен возвращать
True, чтобы разрешить ленивый импорт, илиFalse, чтобы принудительно выполнить обычный импорт.Это расширенная возможность, предназначенная для специализированных пользователей, которым нужен точный контроль над поведением ленивых импортов.
См. также
get_lazy_imports_filter()и PEP 810.Добавлено в версии 3.15.
- sys.setprofile(profilefunc)¶
Устанавливает профилирующую функцию системы, которая позволяет реализовать профилировщик исходного кода Python на самом Python. См. главу profile – профилировщик на чистом Python для получения дополнительной информации о профилировщике Python. Системная профилирующая функция вызывается аналогично системной трассирующей функции (см.
settrace()), но вызывается с другими событиями; например, она не вызывается для каждой выполненной строки кода (только при вызове и возврате, но событие возврата сообщается даже при наличии установленного исключения). Функция привязана к потоку, но у профилировщика нет способа узнать о переключениях контекста между потоками, поэтому не имеет смысла использовать её при наличии нескольких потоков. Кроме того, её возвращаемое значение не используется, поэтому она может просто возвращатьNone. Ошибка в профилирующей функции приведёт к её отключению.Примечание
Тот же механизм трассировки используется для
setprofile(), что и дляsettrace(). Чтобы отслеживать вызовы сsetprofile()внутри трассирующей функции (например, в точке останова отладчика), см.call_tracing().Функции профилирования должны иметь три аргумента: frame, event и arg. frame – это текущий стековый фрейм. event – это строка:
'call','return','c_call','c_return'или'c_exception'. arg зависит от типа события.События имеют следующее значение:
'call'Вызывается функция (или вход в другой блок кода). Вызывается профилирующая функция; arg равно
None.'return'Функция (или другой блок кода) собирается вернуть управление. Вызывается профилирующая функция; arg – это значение, которое будет возвращено, или
None, если событие вызвано возбуждением исключения.'c_call'Функция C собирается быть вызванной. Это может быть функция расширения или встроенная функция. arg – это объект функции C.
'c_return'Функция C вернула управление. arg – это объект функции C.
'c_exception'Функция C возбудила исключение. arg – это объект функции C.
Вызывает событие аудита
sys.setprofileбез аргументов.
- sys.setrecursionlimit(limit)¶
Устанавливает максимальную глубину стека интерпретатора Python в limit. Этот предел предотвращает бесконечную рекурсию, которая может вызвать переполнение стека C и аварийное завершение Python.
Максимально возможный предел зависит от платформы. Пользователю может потребоваться установить более высокий предел, если у него есть программа, требующая глубокой рекурсии, и платформа, поддерживающая более высокий предел. Это следует делать с осторожностью, поскольку слишком высокий предел может привести к аварийному завершению.
Если новое ограничение слишком мало для текущей глубины рекурсии, возбуждается исключение
RecursionError.Изменено в версии 3.5.1: Теперь возбуждается исключение
RecursionError, если новое ограничение слишком мало для текущей глубины рекурсии.
- sys.setswitchinterval(interval)¶
Устанавливает интервал переключения потоков интерпретатора (в секундах). Это значение с плавающей точкой определяет идеальную длительность «квантов времени», выделяемых параллельно работающим потокам Python. Обратите внимание, что фактическое значение может быть больше, особенно если используются длительные внутренние функции или методы. Кроме того, какой поток будет запланирован по истечении интервала, решает операционная система. У интерпретатора нет собственного планировщика.
Добавлено в версии 3.2.
- sys.settrace(tracefunc)¶
Устанавливает системную трассировочную функцию, которая позволяет реализовать отладчик исходного кода Python на Python. Функция привязана к потоку; чтобы отладчик поддерживал несколько потоков, он должен зарегистрировать трассировочную функцию с помощью
settrace()для каждого отлаживаемого потока или использоватьthreading.settrace().Трассировочные функции должны иметь три аргумента: frame, event и arg. frame – это текущий стековый фрейм. event – строка:
'call','line','return','exception'или'opcode'. arg зависит от типа события.Трассировочная функция вызывается (с event, установленным в
'call') при входе в новую локальную область видимости; она должна возвращать ссылку на локальную трассировочную функцию для использования в новой области илиNone, если область не должна трассироваться.Локальная трассировочная функция должна возвращать ссылку на себя или на другую функцию, которая затем будет использоваться в качестве локальной трассировочной функции для этой области.
Если в трассировочной функции произошла любая ошибка, она будет сброшена, как если бы была вызвана
settrace(None).Примечание
Трассировка отключается во время вызова трассировочной функции (например, функции, установленной
settrace()). О рекурсивной трассировке см.call_tracing().События имеют следующее значение:
'call'Функция вызывается (или вход в другой блок кода). Вызывается глобальная трассировочная функция; arg равно
None; возвращаемое значение задаёт локальную трассировочную функцию.'line'Интерпретатор собирается выполнить новую строку кода или повторно выполнить условие цикла. Вызывается локальная трассировочная функция; arg равно
None; возвращаемое значение задаёт новую локальную трассировочную функцию. Подробное описание работы см. вObjects/lnotab_notes.txt. Построчные события могут быть отключены для фрейма установкойf_trace_linesвFalseна этом фрейме.'return'Функция (или другой блок кода) собирается вернуть значение. Вызывается локальная трассировочная функция; arg – это значение, которое будет возвращено, или
None, если событие вызвано возбуждением исключения. Возвращаемое значение трассировочной функции игнорируется.'exception'Произошло исключение. Вызывается локальная трассировочная функция; arg – это кортеж
(exception, value, traceback); возвращаемое значение задаёт новую локальную трассировочную функцию.'opcode'Интерпретатор собирается выполнить новый опкод (подробнее об опкодах см.
dis). Вызывается локальная трассировочная функция; arg равноNone; возвращаемое значение задаёт новую локальную трассировочную функцию. События на опкод по умолчанию не генерируются: они должны быть явно запрошены установкойf_trace_opcodesвTrueна фрейме.
Обратите внимание: при распространении исключения вниз по цепочке вызывающих на каждом уровне генерируется событие
'exception'.Для более тонкого использования можно установить трассировочную функцию прямым присваиванием
frame.f_trace = tracefunc, а не полагаться на её установку косвенно через возвращаемое значение уже установленной трассировочной функции. Это также необходимо для активации трассировочной функции на текущем фрейме, чегоsettrace()не делает. Обратите внимание, что для работы этого механизма должна быть установлена глобальная трассировочная функция с помощьюsettrace(), чтобы включить механизм трассировки времени выполнения, но это не обязательно должна быть та же самая функция (например, это может быть малозатратная трассировочная функция, которая просто возвращаетNone, чтобы немедленно отключить себя на каждом фрейме).Дополнительную информацию об объектах кода и фреймов см. в Стандартной иерархии типов.
Вызывает событие аудита
sys.settraceбез аргументов.Особенность реализации CPython: Функция
settrace()предназначена только для реализации отладчиков, профилировщиков, инструментов покрытия кода и тому подобного. Её поведение является частью реализации платформы, а не частью определения языка, и поэтому может быть недоступно во всех реализациях Python.Изменено в версии 3.7: Добавлен тип события
'opcode'; добавлены атрибутыf_trace_linesиf_trace_opcodesдля фреймов
- sys.set_asyncgen_hooks([firstiter] [, finalizer])¶
Принимает два необязательных именованных аргумента, которые являются вызываемыми объектами, принимающими итератор асинхронного генератора в качестве аргумента. Вызываемый объект firstiter будет вызван при первой итерации асинхронного генератора. Вызываемый объект finalizer будет вызван, когда асинхронный генератор будет готов к сборке мусора.
Вызывает событие аудита
sys.set_asyncgen_hooks_firstiterбез аргументов.Вызывает событие аудита
sys.set_asyncgen_hooks_finalizerбез аргументов.Возбуждаются два аудиторских события, поскольку базовый API состоит из двух вызовов, каждый из которых должен возбуждать собственное событие.
Добавлено в версии 3.6: Подробнее см. в PEP 525; пример реализации метода finalizer см. в реализации
asyncio.Loop.shutdown_asyncgensв Lib/asyncio/base_events.pyПримечание
Эта функция была добавлена на временной основе (подробнее см. PEP 411).
- sys.set_coroutine_origin_tracking_depth(depth)¶
Позволяет включить или отключить отслеживание происхождения корутины. При включении атрибут
cr_originобъектов корутины будет содержать кортеж кортежей (имя файла, номер строки, имя функции), описывающий трассировку стека, где был создан объект корутины, начиная с самого последнего вызова. При отключенииcr_originбудет равенNone.Чтобы включить, передайте значение depth больше нуля; это задаёт количество фреймов, информация о которых будет захвачена. Чтобы отключить, установите depth в ноль.
Этот параметр привязан к потоку.
Добавлено в версии 3.7.
Примечание
Эта функция была добавлена на временной основе (подробнее см. PEP 411). Используйте её только для целей отладки.
- sys.activate_stack_trampoline(backend, /)¶
Активирует трамплин профилировщика стека backend. Единственный поддерживаемый backend –
"perf".Трамплины стека нельзя активировать, если активен JIT.
Доступность: Linux.
Добавлено в версии 3.12.
- sys.deactivate_stack_trampoline()¶
Деактивирует текущий backend трамплина профилировщика стека.
Если ни один профилировщик стека не активирован, эта функция не имеет эффекта.
Доступность: Linux.
Добавлено в версии 3.12.
- sys.is_stack_trampoline_active()¶
Возвращает
True, если активен трамплин профилировщика стека.Доступность: Linux.
Добавлено в версии 3.12.
- sys.remote_exec(pid, script)¶
Выполняет script – файл, содержащий код Python, в удалённом процессе с заданным pid.
Эта функция возвращается немедленно, а код будет выполнен главным потоком целевого процесса при первой же возможности, аналогично обработке сигналов. Нет интерфейса для определения момента завершения выполнения кода. Вызывающий отвечает за то, чтобы файл всё ещё существовал, когда удалённый процесс попытается его прочитать, и не был перезаписан.
Удалённый процесс должен выполнять интерпретатор CPython той же основной и минорной версии, что и локальный процесс. Если локальный или удалённый интерпретатор является предварительным выпуском (альфа, бета или кандидат на выпуск), то локальный и удалённый интерпретаторы должны совпадать до версии в точности.
См. протокол подключения удалённой отладки для получения дополнительной информации о механизме удалённой отладки.
Когда код выполняется в удалённом процессе, возникает событие аудита
sys.remote_execс pid и путём к файлу сценария. Это событие возникает в процессе, который вызвалsys.remote_exec().Когда сценарий выполняется в удалённом процессе, возникает событие аудита
cpython.remote_debugger_scriptс путём в удалённом процессе. Это событие возникает в удалённом процессе, а не в том, который вызвалsys.remote_exec().Доступность: Unix, Windows.
Добавлено в версии 3.14: См. PEP 768 для подробностей.
- sys._enablelegacywindowsfsencoding()¶
Изменяет кодировку файловой системы и обработчик ошибок на 'mbcs' и 'replace' соответственно, для совместимости с версиями Python до 3.6.
Это эквивалентно определению
PYTHONLEGACYWINDOWSFSENCODINGпеременной окружения перед запуском Python.См. также
sys.getfilesystemencoding()иsys.getfilesystemencodeerrors().Доступность: Windows.
Примечание
Изменение кодировки файловой системы после запуска Python рискованно, поскольку старая кодировка или пути, закодированные старой кодировкой, могут быть где-то закешированы. Используйте
PYTHONLEGACYWINDOWSFSENCODINGвместо этого.Добавлено в версии 3.6: См. PEP 529 для подробностей.
Устарело с версии 3.13, будет удалено в версии 3.16: Используйте
PYTHONLEGACYWINDOWSFSENCODINGвместо этого.
- sys.stdin¶
- sys.stdout¶
- sys.stderr¶
Файловые объекты, используемые интерпретатором для стандартного ввода, вывода и ошибок:
stdinиспользуется для всего интерактивного ввода (включая вызовыinput());stdoutиспользуется для выводаprint()и выражений, а также для приглашенийinput();Собственные приглашения интерпретатора и сообщения об ошибках направляются в
stderr.
Эти потоки данных – обычные текстовые файлы, подобные тем, что возвращаются функцией
open(). Их параметры выбираются следующим образом:Кодировка и обработка ошибок инициализируются из
PyConfig.stdio_encodingиPyConfig.stdio_errors.В Windows для консольного устройства используется UTF-8. Несимвольные устройства, такие как дисковые файлы и каналы, используют системную кодировку локали (т.е. кодовую страницу ANSI). Неконсольные символьные устройства, такие как NUL (т.е. если
isatty()возвращаетTrue), используют значение кодовых страниц ввода и вывода консоли при запуске соответственно для stdin и stdout/stderr. По умолчанию это системная кодировка локали, если процесс изначально не прикреплён к консоли.Особое поведение консоли можно переопределить, установив переменную окружения PYTHONLEGACYWINDOWSSTDIO перед запуском Python. В этом случае кодовые страницы консоли используются так же, как для любого другого символьного устройства.
На всех платформах кодировку символов можно переопределить, установив переменную окружения
PYTHONIOENCODINGперед запуском Python или через новую опцию командной строки-Xutf8и переменную окруженияPYTHONUTF8. Однако для консоли Windows это применимо только в случае, если также установленаPYTHONLEGACYWINDOWSSTDIO.В интерактивном режиме поток
stdoutбуферизируется по строкам. В противном случае он буферизируется блоками, как обычные текстовые файлы. Потокstderrбуферизируется по строкам в обоих случаях. Оба потока можно сделать небуферизированными, передав опцию командной строки-uили установив переменную окруженияPYTHONUNBUFFERED.
Изменено в версии 3.9: Неинтерактивный
stderrтеперь буферизируется по строкам вместо полной буферизации.Примечание
Для записи или чтения двоичных данных из/в стандартные потоки используйте нижележащий двоичный объект
buffer. Например, чтобы записать байты вstdout, используйтеsys.stdout.buffer.write(b'abc').Однако, если вы пишете библиотеку (и не контролируете, в каком контексте будет выполняться её код), имейте в виду, что стандартные потоки могут быть заменены файлоподобными объектами, например
io.StringIO, которые не поддерживают атрибутbuffer.
- sys.__stdin__¶
- sys.__stdout__¶
- sys.__stderr__¶
Эти объекты содержат исходные значения
stdin,stderrиstdoutна момент запуска программы. Они используются во время финализации и могут быть полезны для вывода в фактический стандартный поток независимо от того, был ли перенаправлен объектsys.std*.Его также можно использовать для восстановления фактических файлов до известных рабочих файловых объектов в случае, если они были перезаписаны некорректным объектом. Однако предпочтительный способ – явно сохранить предыдущий поток перед заменой и восстановить сохранённый объект.
Примечание
При некоторых условиях
stdin,stdoutиstderr, а также исходные значения__stdin__,__stdout__и__stderr__могут бытьNone. Обычно это характерно для приложений Windows GUI, не подключённых к консоли, и приложений Python, запущенных с pythonw.
- sys.stdlib_module_names¶
Неизменяемое множество строк, содержащее имена модулей стандартной библиотеки.
Оно одинаково на всех платформах. Также перечислены модули, недоступные на некоторых платформах, и модули, отключённые при сборке Python. Перечислены все типы модулей: чистые Python, встроенные, замороженные и модули расширений. Тестовые модули исключены.
Для пакетов указан только основной пакет: подпакеты и подмодули не перечисляются. Например, указан пакет
email, но подпакетemail.mimeи подмодульemail.messageне указаны.См. также список
sys.builtin_module_names.Добавлено в версии 3.10.
- sys.thread_info¶
Именованный кортеж, содержащий информацию о реализации потоков.
- thread_info.name¶
Имя реализации потоков:
"nt": потоки Windows"pthread": потоки POSIX"pthread-stubs": заглушка потоков POSIX (на платформах WebAssembly без поддержки многопоточности)"solaris": потоки Solaris
- thread_info.lock¶
Имя реализации блокировки:
"semaphore": блокировка использует семафор"mutex+cond": блокировка использует мьютекс и условную переменнуюNoneесли эта информация неизвестна
- thread_info.version¶
Имя и версия библиотеки потоков. Это строка или
None, если эта информация неизвестна.
Добавлено в версии 3.3.
- sys.tracebacklimit¶
Когда этой переменной присвоено целое значение, она определяет максимальное количество уровней информации трассировки, выводимой при необработанном исключении. Значение по умолчанию:
1000. Если установлено0или меньше, вся информация трассировки подавляется и выводятся только тип и значение исключения.
- sys.unraisablehook(unraisable, /)¶
Обрабатывает неподдающееся обработке исключение.
Вызывается, когда произошло исключение, но у Python нет возможности его обработать. Например, когда деструктор вызывает исключение или во время сборки мусора (
gc.collect()).Аргумент unraisable имеет следующие атрибуты:
exc_type: Тип исключения.exc_value: Значение исключения, может бытьNone.exc_traceback: Трассировка исключения, может бытьNone.err_msg: Сообщение об ошибке, может бытьNone.object: Объект, вызвавший исключение, может бытьNone.
Перехватчик по умолчанию форматирует
err_msgиobjectкак:f'{err_msg}: {object!r}'; использует сообщение об ошибке «Исключение проигнорировано в», еслиerr_msgравноNone. Как и модульtraceback, он по умолчанию добавляет цвет в вывод исключений. Это можно отключить с помощью переменных окружения.sys.unraisablehook()можно переопределить, чтобы управлять обработкой неподдающихся обработке исключений.Изменено в версии 3.15: Исключения теперь выводятся цветным текстом.
Смотрите также
excepthook(), который обрабатывает неперехваченные исключения.Предупреждение
Хранение
exc_valueс помощью пользовательского перехватчика может создать циклическую ссылку. Её следует явно очищать для разрыва цикла, когда исключение больше не нужно.Хранение
objectс помощью пользовательского перехватчика может привести к его воскрешению, если оно присвоено объекту, который находится в процессе финализации. Избегайте храненияobjectпосле завершения пользовательского перехватчика, чтобы не воскрешать объекты.Возбуждает событие аудита
sys.unraisablehookс аргументами hook, unraisable, когда происходит исключение, которое невозможно обработать. Объект unraisable совпадает с тем, что будет передан перехватчику. Если перехватчик не установлен, hook может бытьNone.Добавлено в версии 3.8.
- sys.version¶
Строка, содержащая номер версии интерпретатора Python, а также дополнительную информацию о номере сборки и используемом компиляторе. Эта строка выводится при запуске интерактивного интерпретатора. Не извлекайте из неё информацию о версии, вместо этого используйте
version_infoи функции, предоставляемые модулемplatform.
- sys.api_version¶
Версия C API, эквивалентная макросу C
PYTHON_API_VERSION. Определена для обратной совместимости.В настоящее время эта константа не обновляется в новых версиях Python и не пригодна для определения версии. В будущем это может измениться.
- sys.version_info¶
Кортеж, содержащий пять компонентов номера версии: major, minor, micro, releaselevel и serial. Все значения, кроме releaselevel, являются целыми числами; уровень выпуска –
'alpha','beta','candidate'или'final'. Значениеversion_info, соответствующее версии Python 2.0, равно(2, 0, 0, 'final', 0). К компонентам также можно обращаться по имени: такsys.version_info[0]эквивалентноsys.version_info.majorи так далее.Изменено в версии 3.1: Добавлены именованные атрибуты компонентов.
- sys.warnoptions¶
Это деталь реализации механизма предупреждений; не изменяйте это значение. Обратитесь к модулю
warningsза дополнительной информацией о механизме предупреждений.
- sys.winver¶
Номер версии, используемый для формирования ключей реестра на платформах Windows. Он хранится как строковый ресурс 1000 в DLL Python. Значение обычно равно мажорной и минорной версиям работающего интерпретатора Python. Это значение присутствует в модуле
sysдля справки; его изменение не влияет на ключи реестра, используемые Python.Доступность: Windows.
- sys.monitoring
Пространство имён, содержащее функции и константы для регистрации колбэков и управления событиями мониторинга. Подробнее см.
sys.monitoring.
- sys._xoptions¶
Словарь различных флагов, специфичных для реализации, передаваемых через опцию командной строки
-X. Имена опций либо сопоставляются со своими значениями, если они заданы явно, либо сTrue. Пример:shell-session$ ./python -Xa=b -Xc Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys._xoptions {'a': 'b', 'c': True}Деталь реализации CPython: Это специфический для CPython способ доступа к опциям, переданным через
-X. Другие реализации могут предоставлять их другими способами или не предоставлять вовсе.Добавлено в версии 3.2.
Цитаты
ISO/IEC 9899:1999. «Programming languages – C.» Общедоступный проект этого стандарта доступен по адресу https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf.