sys — Системоспецифичные параметры и функции¶
Модуль обеспечивает доступ к некоторым переменным, используемый или поддерживаемым интерпретатор, и к функциям, которые тесно взаимодействуют с интерпретатор. Он всегда доступен.
-
sys.abiflags¶ В системах POSIX, где Python был построен со стандартным сценарием
configure, он содержит флаги ABI, как указано в PEP 3149.Изменено в версии 3.8: Флаги по умолчанию стали пустым строка (
mфлаг для pymalloc был удален).Добавлено в версии 3.2.
-
sys.addaudithook(hook)¶ Добавить вызываемый hook в список активных хуки аудита для текущего интерпретатора.
Когда событие аудита инициируется функцией
sys.audit(), каждый хук будет вызываться в том порядке, в котором он был добавлен, с именем события и кортежем аргументов. Первыми вызываются собственные хуки, добавленныеPySys_AddAuditHook(), а затем хуки, добавленные в текущем интерпретаторе. Затем хуки могут регистрировать событие, вызывать исключение для прерывания операции или полностью завершать процесс.Вызов
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.Примечание
В 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¶ Установить во время запуска Python перед запуском
site.pyв то же значение, что иexec_prefix. Если не работать в виртуальная среда, значения останется прежним; еслиsite.pyобнаружит, что виртуальная среда используется, значенияprefixиexec_prefixбудут изменены для указания на виртуальную среду, в то время какbase_prefixиbase_exec_prefixостанутся указывающими на базовую Python установку (на основе которой была создана виртуальная среда).Добавлено в версии 3.3.
-
sys.base_prefix¶ Установить во время запуска Python перед запуском
site.pyв то же значение, что иprefix. Если не работать в виртуальная среда, значения останется прежним; еслиsite.pyобнаружит, что виртуальная среда используется, значенияprefixиexec_prefixбудут изменены для указания на виртуальную среду, в то время какbase_prefixиbase_exec_prefixостанутся указывающими на базовую Python установку (на основе которой была создана виртуальная среда).Добавлено в версии 3.3.
-
sys.byteorder¶ Индикатор собственного порядка байтов. Это будет иметь значение
'big'на платформах big-endian (старший байт первый), а'little'на платформах little-endian (первый байт с наименьшей значимостью).
-
sys.builtin_module_names¶ Кортеж строки, дающий названия всех модулей, скомпилированных в этот Python интерпретатор. (Эта информация недоступна другим способом —
modules.keys()перечисляет только импортированные модули.
-
sys.call_tracing(func, args)¶ Вызов
func(*args), в то время как трассировка включена. После этого состояние трассировки сохраняется и восстанавливается. Он предназначен для вызова из отладчика с контрольной точки для рекурсивной отладки некоторых других кодов.
-
sys.copyright¶ Строка, содержащий авторские права, относящиеся к Python интерпретатору.
-
sys._clear_type_cache()¶ Очистить кэш внутреннего типа. Для ускорения поиска кэш и методов используемый тип атрибут. Использовать только функцию, чтобы удалить ненужные ссылки во время отладки утечки ссылок.
Эта функция должна быть используемый только для внутренних и специализированных целей.
-
sys._current_frames()¶ Возвращает словарь, отображающий каждый идентификатор поток на самый верхний фрейм стека, активный в данный момент в этом поток во время вызова функции. Следует отметить, что функции в модуле
tracebackмогут создавать стек вызовов с таким фрейм.Это наиболее полезно для отладки взаимоблокировки: эта функция не требует взаимоблокировки потоков, и такие стеки вызовов потоки замораживаются до тех пор, пока они остаются взаимоблокированными. фрейм, возвращенный для поток без взаимоблокировки, может не иметь отношения к текущей активности поток к моменту, когда вызывающий код проверяет фрейм.
Эта функция должна быть используемый только для внутренних и специализированных целей.
Raises an auditing event
sys._current_frameswith no arguments.
-
sys.breakpointhook()¶ Эта функция хук вызывается встроенными
breakpoint(). По умолчанию он перенаправляет вас в отладчикpdb, но может быть установлен в любую другую функцию, чтобы вы могли выбрать, какой отладчик получит используемый.Сигнатура этой функции зависит от того, что она называет. Например, биндинг по умолчанию (например,
pdb.set_trace()) не ожидает аргументов, но его можно связать с функцией, которая ожидает дополнительных аргументов (позиционных и/или ключевой). Встроенная функцияbreakpoint()проходит свой*argsи**kwsпрямо. Независимо от того, чтоbreakpointhooks()возвращает - возвращенный отbreakpoint().Реализация по умолчанию сначала обращается к переменной среды
PYTHONBREAKPOINT. Если установлено значение"0", то эта функция возвращает немедленно; то есть это no-op. Если переменная среды не задана или имеет пустое строка, вызывается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 настроен –with-pydebug, он также выполняет некоторые дорогостоящие внутренние проверки непротиворечивости.
Добавлено в версии 3.3.
Детали реализации CPython: Эта функция специфична для CPython. Точный формат вывода здесь не определен и может измениться.
-
sys.dllhandle¶ Целое число, указывающее дескриптор библиотеки DLL Python.
Availability: Windows.
-
sys.displayhook(value)¶ Если value не
None, эта функция печатаетrepr(value)вsys.stdoutи сохраняет value вbuiltins._. Еслиrepr(value)не encodable кsys.stdout.encodingс ошибкойsys.stdout.errorsобработчик (который является, вероятно,'strict'), закодируйте его кsys.stdout.encodingс ошибкой'backslashreplace'обработчик.sys.displayhookвызывается по результату оценки выражения, введенного в интерактивном сеансе Python. Отображение этих значения можно настроить, назначивsys.displayhookдругую функцию с одним аргументом.Псевдо-код:
def 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.pycache_prefix¶ Если этот параметр установлен (не
None), Python будет записывать файлы кэша байткода.pycв (и считывать их из) параллельное дерево каталогов, основанное на этом каталоге, а не из__pycache__каталогов в дереве исходных код. Все__pycache__каталоги в дереве исходного код будут игнорироваться, а новые файлы «.pyc» будут записаны в префиксе pycache. Таким образом, если вы используетеcompileallв качестве этапа предварительного построения, вы должны убедиться, что вы запустите его с тем же префиксом pycache (если есть), который вы будете использовать во время выполнения.Относительный путь интерпретируется относительно текущего рабочего каталога.
Этот значение первоначально установлен на основе значение параметра командной строки
-Xpycache_prefix=PATH, или переменная окруженияPYTHONPYCACHEPREFIX(командная строка имеет приоритет). Если ни тот, ни другой не установлены, этоNone.Добавлено в версии 3.8.
-
sys.excepthook(type, value, traceback)¶ Эта функция позволяет распечатать данный трейсбэк и исключение для
sys.stderr.При возникновении и отсутствии исключения интерпретатор вызывает
sys.excepthookс тремя аргументами: класс исключения, сущность исключения и объект трейсбэк. В интерактивном сеансе это происходит непосредственно перед возвращенный элемента управления в подсказку; в 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.exc_info()¶ Эта функция возвращает кортеж из трех значения, которые предоставляют информацию об особой ситуации, которая в настоящее время обрабатывается. Информационный возвращенный относится как к текущему поток, так и к текущему стеку фрейм. Если текущий фрейм стека не обрабатывает исключение, информация берется от вызывающего фрейм стека или его вызывающего абонента и т.д. до тех пор, пока не будет найден фрейм стека, который обрабатывает исключение. Здесь «обработка исключения» определяется как «выполнение исключения» клаузула. Для любого фрейм стека доступна только информация о обрабатываемом исключении.
Если никакие исключения не обрабатываются где-либо в стеке, возвращенный кортеж, содержащий три
Noneзначения. В противном случае значения возвращенный(type, value, traceback). Их значение: type получает тип обрабатываемого исключения (подклассBaseException); value получает сущность исключения (сущность типа исключения); traceback получает объект трассировки, который инкапсулирует стек вызовов в точке, где первоначально возникло исключение.
-
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.Примечание
Если виртуальная среда действует, этот значение будет изменен в
site.pyдля указания на виртуальную среду. По-прежнему доступны значение для установки Python черезbase_exec_prefix.
-
sys.executable¶ Строка, дающая абсолютный путь исполняемого двоичного файла для Python интерпретатор, в системах, где это имеет смысл. Если Python не удается получить реальный путь к исполняемому файлу,
sys.executableбудет пустая строка илиNone.
-
sys.exit([arg])¶ Выход из Python. Это реализуется путём поднятия
SystemExitисключения, поэтому выполняются действия очистки, определенные заключительными предложениямиtryинструкции, и возможно перехватить попытку выхода на внешнем уровне.Необязательным аргументом arg может быть целое число со статусом выхода (значение по умолчанию равно нулю) или другой тип объекта. Если это целое число, нулевое число считается «успешным окончанием», а любое ненулевое значение считается «ненормальным окончанием» оболочками и т.п. Большинство систем требуют, чтобы он находился в диапазоне 0 - 127, и дают неопределенные результаты в противном случае. Некоторые системы имеют соглашение о присвоении конкретных значений конкретным коды выхода, но они, как правило, недостаточно развиты; Unix-программы обычно используют 2 для синтаксических ошибок командной строки и 1 для всех других типов ошибок. Если передается объект другого типа,
Noneэквивалентно передаче нуля, а любой другой объект печатается дляstderrи приводит к код выхода 1. В частности,sys.exit("some error message")быстрый способ выхода из программы при возникновении ошибки.Поскольку
exit()в конечном итоге «только» вызывает исключение, он будет выходить из процесса только при вызове из основного поток, и исключение не перехватывается.Изменено в версии 3.6: Если ошибка происходит в очистке после того, как Python интерпретатор поймал
SystemExit(такой как ошибка при смывании буферизованных данных в стандартных потоках), статус выхода изменен на 120.
-
sys.flags¶ В именованный кортеж flags отображается состояние флагов командной строки. Эти атрибуты доступны только для чтения.
атрибут флаг debug-dinspect-iinteractive-iisolated-Ioptimize-Oили-OOdont_write_bytecode-Bno_user_site-sno_site-Signore_environment-Everbose-vbytes_warning-bquiet-qhash_randomization-Rdev_mode-Xdevutf8_mode-Xutf8Изменено в версии 3.2: Добавлен
quietатрибут для нового флага-q.Добавлено в версии 3.2.3:
hash_randomizationатрибут.Изменено в версии 3.3: Удалены устаревшие
division_warningатрибут.Изменено в версии 3.4: Добавлен
isolatedатрибут для флага-Iisolated.
-
sys.float_info¶ В именованный кортеж содержится информация о типе float. Содержит сведения низкого уровня о точности и внутреннем представлении. Эти значения соответствуют различным константам с плавающей запятой, определенным в стандартном файле заголовка,
float.hдля языка программирования «C»; подробнее см. раздел 5.2.4.2.2 стандарта ISO/IEC C 1999 года [C99] «Характеристики плавающих типов».атрибут float.h макрос объяснение epsilonDBL_EPSILON разница между 1.0 и наименьшим значением больше 1.0, который представляется в виде числа с float digDBL_DIG максимальное количество десятичных цифр, которые могут быть точно представлены в float; см. ниже mant_digDBL_MANT_DIG точность float: число базовых цифр radixв значении и значении с плавающей точкойmaxDBL_MAX максимальная представляемая положительная конечная float max_expDBL_MAX_EXP максимальное целое число e так что radix**(e-1)является представимым конечным floatmax_10_expDBL_MAX_10_EXP максимальное целое число e так что 10**eнаходится в диапазоне представимых конечных плавающих чиселminDBL_MIN минимальный представляемый положительный normalized float min_expDBL_MIN_EXP минимальное целое число e, так что radix**(e-1)является нормированным floatmin_10_expDBL_MIN_10_EXP минимальное целое число e, так что 10**eявляется нормированным floatradixFLT_RADIX радиус представления экспоненты roundsFLT_ROUNDS целочисленная константа, представляющая режим округления, используемый для арифметических операций. Это отражает значение системы FLT_ROUNDS макроса во время запуска интерпретатора. См. раздел 5.2.4.2.2 стандарта C99 для объяснения возможных значений и их смыслов. Атрибут
sys.float_info.digнуждается в дальнейшем объяснении. Еслиsнекоторая строка, представляющий десятичное число с не более чемsys.float_info.digзначащими цифрами, то преобразованиеsв float и обратно восстановит строка, представляющий тот же самый десятичный значение:>>> import sys >>> sys.float_info.dig 15 >>> s = '3.14159265358979' # десятичная строка с 15 значащими цифрами >>> format(float(s), '.15g') # конвертировать в float и обратно -> то же значение '3.14159265358979'
Но для строки с более чем
sys.float_info.digзначимыми цифрами это не всегда верно:>>> s = '9876543211234567' # 16 16 значащих цифр - это слишком много! >>> format(float(s), '.16g') # конверсия меняет значение '9876543211234568'
-
sys.float_repr_style¶ Строка, указывающее поведение функции
repr()для чисел с плавающей точкой. Если строка имеет значение'short'то для конечного floatx,repr(x)стремится произвести короткое строка со свойством, котороеfloat(repr(x)) == x. Это обычное поведение в Python 3.1 и выше. В противном случаеfloat_repr_styleимеет значение'legacy'иrepr(x)ведет себя так же, как в версиях Python до 3.1.Добавлено в версии 3.1.
-
sys.getallocatedblocks()¶ Возвращает количество блоков памяти, выделенных интерпретатор в настоящее время, независимо от их размера. Эта функция в основном полезна для отслеживания и отладки утечек памяти. Из-за внутренних кэшей интерпретатор результат может варьироваться от вызова к вызову; возможно, вам придется позвонить
_clear_type_cache()иgc.collect(), чтобы получить более предсказуемые результаты.Если построение или реализация Python не могут разумно вычислить эту информацию,
getallocatedblocks()разрешается вместо этого возвращает 0.Добавлено в версии 3.4.
-
sys.getandroidapilevel()¶ Возвращает время сборки API версии Android как целое число.
Availability: Android.
Добавлено в версии 3.7.
-
sys.getcheckinterval()¶ Возвращает «контрольный интервал» интерпретатор; см.
setcheckinterval().Не рекомендуется, начиная с версии 3.2: Вместо этого используйте
getswitchinterval().
-
sys.getdefaultencoding()¶ Возвращает название текущего строка кодировка используемый по умолчанию внедрением Юникод.
-
sys.getdlopenflags()¶ Возвращает текущего значение флагов, используемый для
dlopen()вызовов. Символьные имена значения флага можно найти в модулеos(константыRTLD_xxx, например,os.RTLD_LAZY).Availability: Unix.
-
sys.getfilesystemencoding()¶ Возвращает имя кодировка используемый для преобразования между именами файлов в юникоде и именами файлов в байтах. Для лучшей совместимости str следует используемый для имен файлов во всех случаях, хотя также поддерживается представление имен файлов в виде байтов. Функции, принимающие или возвращающие имена файлов, должны поддерживать str или bytes и внутренне преобразовывать в предпочтительное представление системы.
Эта кодировка всегда совместима с ASCII.
os.fsencode()иos.fsdecode()должны быть используемый для обеспечения используемый правильного режима кодировка и ошибок.- В режиме UTF-8 кодировка
utf-8на любой платформе. - На macOS кодировка является
'utf-8'. - В Unix кодировка является кодировка локали.
- В Windows кодировка может быть
'utf-8'или'mbcs'в зависимости от конфигурации пользователя. - На Android кодировка
'utf-8'. - В VxWorks кодировка
'utf-8'.
Изменено в версии 3.2:
getfilesystemencoding()результат больше нельзяNone.Изменено в версии 3.6: Windows больше не гарантирует возвращает
'mbcs'. Дополнительные сведения см. в разделах PEP 529 и_enablelegacywindowsfsencoding().Изменено в версии 3.7: Возвращает «utf-8» в режиме UTF-8.
- В режиме UTF-8 кодировка
-
sys.getfilesystemencodeerrors()¶ Возвращает имя используемый режима ошибок для преобразования имен файлов в юникоде и имен файлов в байтах. Имя кодировка возвращенный от
getfilesystemencoding().os.fsencode()иos.fsdecode()должны быть используемый для обеспечения используемый правильного режима кодировка и ошибок.Добавлено в версии 3.6.
-
sys.getrefcount(object)¶ Возвращает количество ссылок на object. Обычно возвращенный счетчика выше, чем можно ожидать, поскольку он включает (временную) ссылку в качестве аргумента для
getrefcount().
-
sys.getrecursionlimit()¶ Возвращает текущем значение предела рекурсии максимальная глубина стека Python интерпретатор. Этот предел не позволяет бесконечной рекурсии вызвать переполнение стека C и сбой Python. Его можно задать по
setrecursionlimit().
-
sys.getsizeof(object[, default])¶ Возвращает размер объекта в байтах. Объект может быть любым типом объекта. Все встроенные объекты будут возвращает правильные результаты, но это не обязательно должно быть верным для сторонних расширений, поскольку это специфично для реализации.
Учитывается только потребление памяти, непосредственно приписанное объекту, а не потребление памяти объектов, на которые он ссылается.
Если этот параметр задан, default будет возвращенный, если объект не предоставляет средства для извлечения размера. В противном случае поднимается
TypeError.getsizeof()вызывает метод__sizeof__объекта и добавляет дополнительные служебные данные сборщика мусора, если объект управляется сборщиком мусора.Пример рекурсивного использования рекурсивный размер рецепта для поиска размера контейнеров и всего их содержимого см. в разделе
getsizeof().
-
sys.getswitchinterval()¶ Возвращает «поток интерпретатор переключают интервал»; см.
setswitchinterval().Добавлено в версии 3.2.
-
sys._getframe([depth])¶ Возвращает объект фрейма из стека вызовов. Если задано необязательное целочисленное depth, возвращает объект фрейм, который многие вызывают под верхом стека. Если это глубже стека вызовов,
ValueErrorподнимается. Значение по умолчанию для depth равно нулю, возвращая фрейм в верхней части стека вызовов.Raises an auditing event
sys._getframewith no arguments.Детали реализации CPython: Эта функция должна быть используемый только для внутренних и специализированных целей. Он не гарантированно существует во всех реализациях Python.
-
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(); дополнительные сведения об этих полях см. в документации майкрософт поOSVERSIONINFOEX().platform_version возвращает точную основную версию, младшую версию и номер сборки текущей операционной системы, а не версию, эмулируемую для процесса. Он предназначен для использования в логирование, а не для обнаружения признаков.
Availability: 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¶ Именованный кортеж, задающий параметры реализации числового хэша. Дополнительные сведения о хешировании числовых типов см. в разделе Хеширование числовых типов.
атрибут объяснение widthширина в битах, используемый для хеш- значений modulusпростой модуль P, используемый для числовой хэш-схемы infзначение хеша возвращается для положительной бесконечности nanхэш-значение возвращаемое для nan imagмножитель используемый для мнимой части комплексного числа algorithmимя алгоритма хеширования str, байта и memoryview hash_bitsвнутренний выходной размер хэш-алгоритма seed_bitsразмер начального ключа алгоритма хеширования Добавлено в версии 3.2.
Изменено в версии 3.4: Добавлены algorithm, hash_bits и seed_bits
-
sys.hexversion¶ Номер версии кодированный как одно целое число. Это гарантированно увеличивается с каждой версией, включая надлежащую поддержку непроизводственных выпусков. Например, чтобы проверить, что Python интерпретатор не менее версии 1.5.2, используйте:
if sys.hexversion >= 0x010502F0: # используйте некоторые расширенные функции ... else: # используйте альтернативную реализацию или предупредите пользователя ...
Это называется
hexversion, так как оно действительно выглядит значимым только при рассмотрении как результат передачи его встроенной функцииhex(). Именованный кортежsys.version_infoможет быть используемый для более человечески- благоприятного кодировка той же информации.Подробнее с
hexversionможно ознакомиться на сайте Версионирование API и ABI.
-
sys.implementation¶ Объект, содержащий сведения о реализации текущего Python интерпретатор. Следующие атрибуты должны существовать во всех реализациях Python.
name - идентификатор реализации, например,
'cpython'. Фактическая строка определяется Python реализацией, но гарантированно ниже.version - именованный кортеж, в том же формате, что и
sys.version_info. Представляет собой версию Python implementation. Это значение отличается от конкретного варианта Python language, которому соответствует текущий выполняемый интерпретатор, который представляет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, это означает, что кэширование модуля должен быть отключен.sys.implementationможет содержать дополнительные атрибуты, специфичные для реализации Python. Эти нестандартные атрибуты должны начинаться с подчеркивания и не описаны здесь. Независимо от его содержания,sys.implementationне будет изменяться ни во время выполнения интерпретатор, ни между версиями внедрения. (Однако он может изменяться между версиями на Python языках.) дополнительные сведения см. в разделе PEP 421.Добавлено в версии 3.3.
Примечание
Добавление новых требуемых атрибуты должно проходить через обычный процесс PEP. Дополнительные сведения см. в разделе PEP 421.
-
sys.int_info¶ Именованный кортеж, в котором содержится информация Python’а о внутреннем представлении целых чисел. Эти атрибуты доступны только для чтения.
Атрибут Объяснение bits_per_digitколичество битов, содержащихся в каждой цифре. В Python целые числа хранятся внутри по основанию 2**int_info.bits_per_digitsizeof_digitразмер в байтах типа C, используемый для представления цифры Добавлено в версии 3.1.
-
sys.__interactivehook__¶ Когда этот атрибут существует, его значение автоматически вызывается (без аргументов) при запуске интерпретатор в интерактивном режиме. Это делается после того, как файл
PYTHONSTARTUPпрочитан, так что вы можете установить этот хук там. Модульsiteустанавливает это.Вызывает событие аудита
cpython.run_interactivehookс объектом хук в качестве аргумента при вызове хук при запуске.Добавлено в версии 3.4.
-
sys.intern(string)¶ Ввести string в таблицу «интернированный» строки и возвращает интернированный строка, который является string собой или копией. Интернированный строки полезен для получения небольшой производительности при поиске в словаре - если ключи в словаре интернированы, а ключ поиска интернирован, сравнение ключей (после хеширования) можно выполнить путем сравнения указателей вместо сравнения строка. Обычно, имена, используемый в программах Python автоматически интернированы, и словари используемый, чтобы держать модуль, класс или сущность атрибуты, интернировали ключи.
Интернированные строки не бессмертны; вы должны держать ссылку на возвращает значение
intern()вокруг, чтобы извлечь выгоду из него.
-
sys.is_finalizing()¶ Возвращает
Trueесли Python интерпретатор отключен,Falseв противном случае.Добавлено в версии 3.5.
-
sys.last_type¶ -
sys.last_value¶ -
sys.last_traceback¶ Эти три переменные не всегда определяются; они устанавливаются, когда исключение не обрабатывается и интерпретатор печатает сообщение об ошибке и трейсбэк стека. Их назначение состоит в том, чтобы позволить интерактивному пользователю импортировать модуль отладчика и участвовать в посмертной отладке без необходимости повторного выполнения команды, вызвавшей ошибку. (Типичное использование
import pdb; pdb.pm()для входа в посмертный отладчик; для получения дополнительной информации см.pdbмодуль.)Значение переменных совпадает с значением возвращает значения из
exc_info()выше.
-
sys.maxsize¶ Целое число, дающее максимальное значение переменной типа
Py_ssize_t. Обычно он2**31 - 1на 32-разрядной платформе и2**63 - 1на 64-разрядной платформе.
-
sys.maxunicode¶ Целое число, дающее значение наибольшей точки код юникода, т.е.
1114111(0x10FFFFв шестнадцатеричном формате).Изменено в версии 3.3: Перед PEP 393,
sys.maxunicodeиспользуемый, чтобы быть или0xFFFFили0x10FFFF, в зависимости от параметра конфигурации, который определил, были ли знаки Юникод сохранены как UCS-2 или UCS-4.
-
sys.meta_path¶ Список объектов поисковик мета-пути, для которых вызваны методы
find_spec(), чтобы узнать, может ли один из объектов найти импортируемый модуль. Методfind_spec()вызывается по крайней мере с абсолютным именем импортируемого модуля. Если импортируемый модуль содержится в пакете, то__path__атрибут родительского пакета передается в качестве второго аргумента. Метод возвращает спецификация модуля илиNone, если модуль не найден.См.также
importlib.abc.MetaPathFinder- Абстрактный базовый класс, определяющий интерфейс объектов поиска на
meta_path. importlib.machinery.ModuleSpec- Конкретный класс, который
find_spec()должен возвращает сущности.
Изменено в версии 3.4: Технические характеристики модуля были введены в Python 3.4, по PEP 451. Более ранние версии Python искали метод под названием
find_module(). Этот метод по-прежнему вызывается как резервный, если в записиmeta_pathотсутствует методfind_spec().
-
sys.modules¶ Этот словарь сопоставляет имена модулей с уже загруженными модулями. Этим можно манипулировать, чтобы принудительно перезарядить модули и другие приемы. Однако замена словаря не обязательно будет работать так, как ожидалось, и удаление основных элементов из словаря может привести к сбою Python.
-
sys.path¶ Список строки, указывающий путь поиска модулей. Инициализировано из переменной среды
PYTHONPATH, плюс зависящее от установки значение по умолчанию.Как было инициализировано при запуске программы, первым элементом этого списка,
path[0], является каталог, содержащий сценарий, который был используемый для вызова Python интерпретатор. Если каталог сценариев недоступен (например, если интерпретатор вызывается в интерактивном режиме или сценарий считывается со стандартного ввода),path[0]является пустым строка, который сначала направляет Python на поиск модулей в текущем каталоге. Обратите внимание, что каталог сценария вставляется before записей, вставляемых в результатеPYTHONPATH.Программа может изменять этот список для своих целей. К строки следует добавлять только
sys.pathи байты; все остальные типы данных игнорируются во время импорта.
-
sys.path_hooks¶ Список вызывающих объектов, которые используют аргумент пути для создания поисковика для пути. Если поиск может быть создан, он должен быть возвращенный вызываемым, в противном случае поднимите
ImportError.Первоначально указано в PEP 302.
-
sys.path_importer_cache¶ Словарь, выполняющий роль кэш для поисковика объектов. Ключи - это пути, переданные
sys.path_hooks, а значения - найденные. Если путь является допустимым путем файловой системы, но наsys.path_hooksне найден поиск, тоNoneсохраняется.Первоначально указано в PEP 302.
Изменено в версии 3.3:
Noneхранится вместоimp.NullImporter, если не найден ни один поисковик.
-
sys.platform¶ Этот строка содержит идентификатор платформы, который можно используемый для добавления компонентов платформы к
sys.path, сущность.Для Unix-систем, за исключением Linux и AIX, это имя ОС в нижнем регистре, возвращенный по
uname -s, с первой частью версии, возвращенный поuname -r, добавленной, например,'sunos5'или'freebsd8', at the time when Python was built. Если не требуется тестирование для определенной версии системы, рекомендуется использовать следующую идиому:if sys.platform.startswith('freebsd'): # Специфичный для FreeBSD код здесь ... elif sys.platform.startswith('linux'): # Linux-специфичный код здесь ... elif sys.platform.startswith('aix'): # AIX-специфичный код здесь ...
Для других систем значения являются:
Система platformзначениеAIX 'aix'Linux 'linux'Windows 'win32'Windows/Cygwin 'cygwin'macOS 'darwin'Изменено в версии 3.3: В Linux
sys.platformбольше не содержит основную версию. Это всегда'linux', вместо'linux2'или'linux3'. Поскольку старые версии Python включают номер версии, рекомендуется всегда использовать приведенную выше идиомуstartswith.Изменено в версии 3.8: В AIX
sys.platformбольше не содержит основную версию. Это всегда'aix', вместо'aix5'или'aix7'. Поскольку старые версии Python включают номер версии, рекомендуется всегда использовать приведенную выше идиомуstartswith.См.также
os.nameимеет более грубую гранулярность.os.uname()предоставляет зависящую от системы информацию о версии.Модуль
platformобеспечивает детальную проверку идентификационных данных системы.
-
sys.prefix¶ Строка, задающий префикс каталога для конкретного сайта, в котором установлены независимые от платформы файлы Python; по умолчанию это строка
'/usr/local'. Это можно задать во время сборки с помощью аргумента--prefixдля сценария configure. Основная коллекция Python библиотечных модулей устанавливается в каталогprefix/lib/pythonX.Yв то время как независимые от платформы заголовочные файлы (все, кромеpyconfig.h) хранятся вprefix/include/pythonX.Y, где X.Y - номер версии Python, например3.2.Примечание
Если виртуальная среда действует, это значение будут изменены в
site.py, чтобы указать на виртуальную среду. По- прежнему доступны значение для установки Python черезbase_prefix.
-
sys.ps1¶ -
sys.ps2¶ Строки, определяющие основной и дополнительный запрос интерпретатор. Они определяются только в том случае, если интерпретатор находится в интерактивном режиме. Их начальные значения в данном случае
'>>> 'и'... '. Если объект non-строка назначен любой переменной, егоstr()повторно оценивается каждый раз, когда интерпретатор готовится к считыванию новой интерактивной команды; это может быть используемый для реализации динамического запроса.
-
sys.setcheckinterval(interval)¶ Установить «контрольный интервал» для интерпретатор. Это целое число значение определяет, как часто интерпретатор проверяет периодические вещи, такие как поток переключатели и сигнальные обработчики. Значение по умолчанию -
100, т.е. проверка выполняется каждые 100 Python виртуальных инструкций. Установка большего значение может повысить производительность программ, использующих потоки. Установка значения значение<=0 проверяет каждую виртуальную инструкцию, повышая быстродействие, а также накладные расходы.Не рекомендуется, начиная с версии 3.2: Эта функция больше не имеет эффекта, так как внутренняя логика для поток переключения и асинхронных задач была переписана. Вместо этого используйте
setswitchinterval().
-
sys.setdlopenflags(n)¶ Установить флаги используемый интерпретатор для требований
dlopen(), такой как тогда, когда интерпретатор загружает дополнительные модули. Среди прочего, это позволит ленивое разрешение символов при импорте модуля, если он называетсяsys.setdlopenflags(0). Для совместного использования символов в модулях внутренних линий вызовите какsys.setdlopenflags(os.RTLD_GLOBAL). Символьные имена значения флага можно найти в модулеos(константыRTLD_xxx, например,os.RTLD_LAZY).Availability: Unix.
-
sys.setprofile(profilefunc)¶ Установить функцию профиля системы, которая позволяет реализовать Python источник код профилировщик в Python. Дополнительные сведения о профилировщике Профилировщики Python см. в главе Python. Функция профиля системы вызывается аналогично функции трассировки системы (см.
settrace()), но вызывается с различными событиями, например, не вызывается для каждой выполняемой строки код (только при вызове и возвращает, но событие возвращает сообщается даже при установке исключения). Функция является поток-specific, но профилировщик не может знать о контекст переключениях между потоки, поэтому нет смысла использовать это при наличии нескольких потоки. Также его возвращает значение не используемый, поэтому он может просто возвращаетNone. Ошибка в функции профиля приведет к отмене настройки.Функции профиля должны иметь три аргумента: frame, event и arg. frame - текущий фрейм стека. event - это строка:
'call','return','c_call','c_return'или'c_exception'. arg зависит от типа события.Raises an auditing event
sys.setprofilewith no arguments.События имеют следующее значение:
'call'- Вызывается функция (или какой-либо другой введенный блок
код). Вызывается функция профиля; arg - это
None. 'return'- Функция (или другой блок код) будет возвращает. Вызывается
функция профиля; arg - это значение, который будет возвращенный или
None, если событие вызвано возникновением исключения. 'c_call'- Функция C будет вызвана. Это может быть функция расширения или встроенная функция. arg - объект функции C.
'c_return'- Функция C имеет возвращенный. arg - объект функции C.
'c_exception'- Функция C вызвала исключение. arg - объект функции C.
-
sys.setrecursionlimit(limit)¶ Установить максимальную глубину стека Python интерпретатор limit. Этот предел не позволяет бесконечной рекурсии вызвать переполнение стека C и сбой Python.
Максимально возможный предел зависит от платформы. Пользователю может потребоваться установить более высокий предел, если у него есть программа, требующая глубокой рекурсии, и платформа, поддерживающая более высокий предел. Это следует делать с осторожностью, потому что слишком высокий предел может привести к краху.
Если новый предел слишком низок при текущей глубине рекурсии, создается
RecursionErrorисключение.Изменено в версии 3.5.1: Если новый предел слишком низок на текущей глубине рекурсии, теперь создается исключение
RecursionError.
-
sys.setswitchinterval(interval)¶ Установить поток интервал переключения интерпретатор (в секундах). Этот значение с плавающей запятой определяет идеальную продолжительность «временных интервалов», выделенных для параллельного выполнения Python потоки. Обратите внимание, что фактические значение могут быть выше, особенно если используемый длительные внутренние функции или методы. Кроме того, какой поток становится запланированным в конце интервала, является решением операционной системы. У интерпретатор нет собственного планировщика.
Добавлено в версии 3.2.
-
sys.settrace(tracefunc)¶ Установить функцию трассировки системы, которая позволяет реализовать отладчик Python source код в Python. Функция является потокоспецифичными; чтобы отладчик поддерживал несколько потоки, он должен зарегистрировать функцию трассировки с использованием
settrace()для каждого отлаживаемого поток или использоватьthreading.settrace().Функции трассировки должны иметь три аргумента: frame, event и arg. frame - текущий фрейм стека. event - это строка:
'call','line','return','exception'или'opcode'. arg зависит от типа события.Функция трассировки вызывается (с параметром event установлено значение
'call') при каждом вводе нового локальная область видимости; он должен возвращает ссылку на функцию трассировки локальная, которая должна быть используемый для нового область видимости, илиNone, если область видимости не следует отслеживать.Функция трассировки локальная должна возвращает ссылку на себя (или на другую функцию для дальнейшей трассировки в том область видимости) или
Noneотключить трассировку в этом область видимости.Если в функции трассировки произошла какая-либо ошибка, она будет отменена, как и
settrace(None).События имеют следующее значение:
'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; возвращает значение определяет новую функцию трассировки локальная. Per-опкод события не выдаются по умолчанию: их необходимо явно запросить, установив дляf_trace_opcodesзначениеTrueна фрейм.
Следует отметить, что в случае распространения исключения по цепочке вызывающих абонентов на каждом уровне генерируется событие
'exception'.Для более детального использования можно задать функцию трассировки, назначив
frame.f_trace = tracefuncявно, а не полагаясь на то, что она будет задана косвенно через возвращает значение из уже установленной функции трассировки. Это также необходимо для активации функции трассировки на текущем фрейм, чегоsettrace()не делает. Следует отметить, что для этого необходимо установить функцию глобальной трассировки сsettrace(), чтобы включить механизм трассировки во время выполнения, но она не должна быть одной и той же функцией трассировки (например, она может быть функцией трассировки с низкими накладными расходами, которая просто возвращаетNoneнемедленно отключить себя на каждом фрейме).Дополнительные сведения об объектах код и фрейм см. в разделе Стандартная иерархия типов.
Raises an auditing event
sys.settracewith no arguments.Детали реализации CPython: Функция
settrace()предназначена только для реализации отладчиков, профилировщиков, инструментов покрытия и т.п. Его поведение является частью платформы реализации, а не частью определения языка, и, таким образом, может быть доступно не во всех реализациях Python.Изменено в версии 3.7:
'opcode'добавлен тип события;f_trace_linesиf_trace_opcodesатрибуты добавлены к кадрам
-
sys.set_asyncgen_hooks(firstiter, finalizer)¶ Принимает два необязательных аргумента ключевой, которые являются вызываемыми и принимают итератор асинхронного генератора в качестве аргумента. Вызываемый firstiter вызывается при первой итерации асинхронного генератор. Этот finalizer будет вызван, когда будет собираться мусор асинхронного генератор.
Raises an auditing event
sys.set_asyncgen_hooks_firstiterwith no arguments.Raises an auditing event
sys.set_asyncgen_hooks_finalizerwith no arguments.Два события аудита возникают, поскольку базовый 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атрибут объектов coroutine будет содержать кортеж кортежей (имя файла, номер строки, имя функции), описывающий трейсбэк, в котором был создан объект coroutine, с последним вызовом. При отключенииcr_originбудет None.Для включения передайте depth значение больше нуля; это задает количество кадров, информация о которых будет записываться. Чтобы отключить, передайте depth set равным нулю.
Этот параметр потокоспецифичный.
Добавлено в версии 3.7.
Примечание
Эта функция была добавлена на временной основе (подробнее см. PEP 411). Использовать его только для отладки.
-
sys._enablelegacywindowsfsencoding()¶ Изменяет кодировку файловой системы по умолчанию и режим ошибок на «mbcs» и «replace» соответственно для обеспечения согласованности с версиями Python до версии 3.6.
Это эквивалентно определению переменной среды
PYTHONLEGACYWINDOWSFSENCODINGперед запуском Python.Availability: Windows.
Добавлено в версии 3.6: Дополнительные сведения см. в разделе PEP 529.
-
sys.stdin¶ -
sys.stdout¶ -
sys.stderr¶ Файловые объекты, используемый интерпретатор для стандартного ввода, вывода и ошибок:
stdinиспользуемый для всех интерактивных входных данных (включая вызовыinput());stdoutиспользуемый для выводаprint()и выражение инструкции и для подсказокinput();- собственные запросы интерпретатор и сообщения об ошибках отправляются в
stderr.
Эти потоки являются регулярными текстовыми файлами как те, которые возвращенный функцией
open(). Их параметры выбираются следующим образом:символ кодировки зависит от платформы. В платформах, отличных от Windows, используется кодировка локали (см.
locale.getpreferredencoding()).В Windows для консольного устройства UTF-8 используемый. Устройства Non-символ, такие как дисковые файлы и пайпы используют системный locale кодировка (т.е. ANSI кодовая страница). Не консольные устройства символ, такие как NUL (т.е. где
isatty()возвращаетTrue), используют значение кодовых страниц ввода и вывода консоли при запуске соответственно для stdin и stdout/stderr. По умолчанию используется системная locale кодировка, если процесс изначально не подключен к консоли.Особое поведение консоли можно переопределить путем установки переменной среды PYTHONLEGACYWINDOWSSTDIO перед запуском Python. В этом случае кодовые страницы консоли используемый, как и для любого другого символ устройства.
Под всеми платформами вы можете отвергнуть символ кодировка, установив переменную окружения
PYTHONIOENCODINGпрежде, чем начать Python или при помощи нового параметра командной строки-Xutf8и переменной окруженияPYTHONUTF8. Однако для консоли Windows это применимо только в том случае, если также установленPYTHONLEGACYWINDOWSSTDIO.В интерактивном режиме потоки
stdoutиstderrбуферизуются по строкам. В противном случае они буферизуются как обычные текстовые файлы. Этот значение можно переопределить с помощью параметра командной строки-u.
Примечание
Для записи или чтения двоичных данных из/в стандартные потоки используйте базовый двоичный объект
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.thread_info¶ Именованный кортеж хранение информации о реализации потоков.
Атрибут Объяснение nameИмя реализации потока:
'nt': Windows потоки'pthread': POSIX потоки'solaris': Solaris потоки
lockИмя реализации блокировки:
'semaphore': блокировка использует семафор'mutex+cond': блокировка использует мьютекс и переменная условияNoneесли эта информация неизвестна
versionИмя и версия библиотеки thread. Это строка или 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_msgNone.sys.unraisablehook()можно переопределить, чтобы управлять обработкой неразрешимых исключений.Хранение exc_value с помощью пользовательского хук может создать ссылочный цикл. Он должен быть очищен явным образом, чтобы прервать ссылочный цикл, если исключение больше не требуется.
Сохранение object с помощью пользовательского хук может восстановить его, если для него задан объект, который завершается. Избегайте сохранения object после завершения пользовательского хук, чтобы избежать восстановления объектов.
См. также
excepthook(), в которой рассматриваются непроверенные исключения.Создание
sys.unraisablehookсобытий аудита с аргументамиhook,unraisableпри возникновении исключения, которое не может быть обработано. Объектunraisableсовпадает с объектом, передаваемым в хук. Если хук не установлен,hookможет бытьNone.Добавлено в версии 3.8.
-
sys.version¶ Строка, содержащая номер версии Python интерпретатор плюс дополнительную информацию о номере сборки и используемый компилятора. Эта строка отображается при запуске интерактивного интерпретатор. Не извлекайте из него информацию о версии, а используйте
version_infoи функции, предоставляемые модулемplatform.
-
sys.api_version¶ Версия C API для этого интерпретатор. Программисты могут найти это полезным при возникновении конфликтов версий отладки между 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. Обычно значение представляет собой первые три символа
version. Он предусмотрен в модулеsysв информационных целях; изменение этого значение не влияет на разделы реестра, используемый Python.Availability: Windows.
-
sys._xoptions¶ Словарь различных специфичных для реализации флагов, передаваемых через параметр командной строки
-X. Имена опций либо сопоставляются с их значения, если они заданы явно, либоTrue. Пример:$ ./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.
Цитаты
| [C99] | ISO/IEC 9899:1999. «Языки программирования – C.» Публичный проект этого стандарта доступен по адресу http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf. |
