sys — Параметры и функции, специфичные для системы
Этот модуль предоставляет доступ к некоторым переменным, используемым или поддерживаемыми интерпретатором, а также к функциям, тесно взаимодействующим с интерпретатором. Он всегда доступен.
-
sys.argv -
Список аргументов командной строки, переданных скрипту Python.
argv[0]— это имя скрипта (зависит от операционной системы, является ли это полным путем или нет). Если интерпретатор был запущен с опцией командной строки-c,argv[0]устанавливается в строку'-c'. Если имени скрипта не было передано интерпретатору Python,argv[0]— пустая строка.Для обработки стандартного ввода или списка файлов, указанных в командной строке, см. модуль
fileinput.
-
sys.byteorder -
Индикатор родного порядка байтов. Он имеет значение
'big'на платформах с big-endian (сначала самый значимый байт) и'little'на платформах с little-endian (сначала наименее значимый байт).Новое в версии 2.0.
-
sys.builtin_module_names -
Кортеж строк, содержащих имена всех модулей, скомпилированных в этот интерпретатор Python. (Эта информация недоступна другим способом —
modules.keys()показывает только импортированные модули.)
-
sys.call_tracing(func, args) -
Вызов
func(*args), в то время как отладка включена. Состояние отладки сохраняется и восстанавливается после. Этот вызов предназначен для вызова из отладчика с контрольной точки, чтобы рекурсивно отладить какой-либо другой код.
-
sys.copyright -
Строка, содержащая авторское право, относящееся к интерпретатору Python.
-
sys._clear_type_cache() -
Очистка внутренней кэшированной информации о типах. Кэш типов используется для ускорения поиска атрибутов и методов. Используйте функцию *только* для удаления ненужных ссылок при отладке утечки ссылок.
Эта функция должна использоваться только для внутренних и специализированных целей.
Новое в версии 2.6.
-
sys._current_frames() -
Возвращает словарь, сопоставляющий идентификатор каждого потока с самой верхней частью стека вызовов, активной в этом потоке в момент вызова функции. Обратите внимание, что функции в модуле
tracebackмогут построить стек вызовов, имея такой фрейм.Это наиболее полезно для отладки тупиковых ситуаций: эта функция не требует сотрудничества заблокированных потоков, а стеки вызовов таких потоков замораживаются до тех пор, пока они не освободятся. Фрейм, возвращенный для незаблокированного потока, может не иметь отношения к текущей активности этого потока к тому времени, когда вызывающий код проверит фрейм.
Эта функция должна использоваться только для внутренних и специализированных целей.
Новое в версии 2.5.
-
sys.dllhandle -
Целое число, определяющее дескриптор DLL Python. Доступность: Windows.
-
sys.displayhook(value) -
Если значение не
None, эта функция выводит его вsys.stdout, и сохраняет его в__builtin__._.sys.displayhookвызывается по результату вычисления выражения, введенного в интерактивной сессии Python. Вывод этих значений можно настроить, назначив другую одноаргументную функциюsys.displayhook.
-
sys.dont_write_bytecode -
Если это истинно, Python не будет пытаться записать файлы
.pycили.pyoпри импорте исходных модулей. Это значение изначально установлено вTrueилиFalseв зависимости от опции командной строки-Bи переменной окруженияPYTHONDONTWRITEBYTECODE, но вы можете установить его самостоятельно для управления генерацией файлов байткода.Новое в версии 2.6.
-
sys.excepthook(type, value, traceback) -
Эта функция выводит указанный стек следов и исключение в
sys.stderr.Когда исключение возникает и не обрабатывается, интерпретатор вызывает
sys.excepthookс тремя аргументами: классом исключения, экземпляром исключения и объектом стека следов. В интерактивной сессии это происходит перед возвращением управления к приглашению; в программе Python это происходит перед завершением программы. Обработку таких исключений верхнего уровня можно настроить, назначив другую функцию с тремя аргументами вsys.excepthook.
-
sys.__displayhook__ -
sys.__excepthook__ -
Эти объекты содержат исходные значения
displayhookиexcepthookв начале программы. Они сохраняются, чтобыdisplayhookиexcepthookмогли быть восстановлены, если они по какой-то причине заменены неработоспособными объектами.
-
sys.exc_info() -
Эта функция возвращает кортеж из трех значений, предоставляющих информацию об исключении, которое в настоящее время обрабатывается. Возвращаемая информация специфична как для текущего потока, так и для текущей рамки стека. Если текущая рамка стека не обрабатывает исключение, информация берется из вызывающей рамки стека, или из ее вызывающей рамки, и так далее, пока не будет найдена рамка стека, обрабатывающая исключение. Здесь «обработка исключения» определяется как «выполнение или завершение выполнения блока except».
Для любой рамки стека доступна только информация о наиболее недавно обработанном исключении.
Если нигде в стеке не обрабатывается исключение, возвращается кортеж, содержащий три
Noneзначения. В противном случае возвращаемые значения —(type, value, traceback). Их значение: тип — тип исключения, обрабатываемого исключения (объект класса); значение — параметр исключения (его сопутствующее значение или второй аргумент кraise, который всегда является экземпляром класса, если тип исключения — объект класса); стек_следов — объект стека следов (см. Справочное руководство), который инкапсулирует стек вызовов в точке, где первоначально возникло исключение.Если вызвать
exc_clear(), эта функция будет возвращать триNoneзначения, пока в текущем потоке не возникнет другое исключение или стек выполнения не вернется к рамке, где обрабатывается другое исключение.Предупреждение
Присваивание значения возврата стек_следов локальной переменной в функции, обрабатывающей исключение, приведет к циклической ссылке. Это предотвратит сборку мусора для всего, что ссылается на локальную переменную в той же функции или на объект стека следов. Поскольку большинству функций не нужен доступ к стеку следов, лучшим решением является использование чего-то вроде
exctype, value = sys.exc_info()[:2]для извлечения только типа и значения исключения. Если вам нужен стек следов, убедитесь, что вы удалили его после использования (лучше всего с помощью оператораtry…finally) или вызовитеexc_info()в функции, которая сама по себе не обрабатывает исключение.Примечание
Начиная с Python 2.2, такие циклы автоматически освобождаются при включенном сборе мусора, когда они становятся недоступными, но остается более эффективным избегать их создания.
-
sys.exc_clear() -
Эта функция очищает всю информацию, относящуюся к текущему или последнему исключению, произошедшему в текущем потоке. После вызова этой функции
exc_info()вернет триNoneзначения, пока в текущем потоке не возникнет другое исключение или стек выполнения не вернется к рамке, где обрабатывается другое исключение.Эта функция требуется только в некоторых редких ситуациях. К ним относятся системы ведения журналов и обработки ошибок, которые сообщают информацию о последнем или текущем исключении. Эта функция также может быть использована для попытки освободить ресурсы и инициировать финализацию объектов, хотя никаких гарантий не дается относительно того, какие объекты будут освобождены, если таковые имеются.
Новое в версии 2.3.
-
sys.exc_type -
sys.exc_value -
sys.exc_traceback -
Устарело начиная с версии 1.5: Используйте
exc_info()вместо этого.Поскольку это глобальные переменные, они не специфичны для текущего потока, поэтому их использование небезопасно в многопоточной программе. Когда не обрабатывается исключение,
exc_typeустановлено вNone, а остальные два — не определены.
-
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, например2.7.
-
sys.executable -
Строка, задающая абсолютный путь к исполняемому бинарному файлу интерпретатора Python на системах, где это имеет смысл. Если Python не может получить реальный путь к своему исполняемому файлу,
sys.executableбудет пустой строкой илиNone.
-
sys.exit([arg]) -
Выход из Python. Это реализуется путём повышения исключения
SystemExit, поэтому действия по очистке, указанные в блоках finally инструкцийtry, выполняются, и есть возможность перехватить попытку выхода на внешнем уровне.Необязательный аргумент arg может быть целым числом, задающим код завершения (по умолчанию ноль), или другим типом объекта. Если это целое число, ноль считается «успешным завершением», а любое ненулевое значение считается «ненормальным завершением» оболочками и т. п. Большинство систем требуют, чтобы оно было в диапазоне 0–127, а в противном случае результаты будут неопределёнными. Некоторые системы имеют соглашение об определении конкретных значений для определённых кодов завершения, но они обычно не развиты; программы Unix обычно используют 2 для ошибок синтаксиса командной строки и 1 для всех других видов ошибок. Если передаётся другой тип объекта,
Noneэквивалентно передаче нуля, а любой другой объект печатается вstderrи приводит к коду завершения 1. В частности,sys.exit("some error message")— это быстрый способ завершить программу при возникновении ошибки.Так как
exit()в конечном итоге «только» поднимает исключение, он будет выходить из процесса только при вызове из основного потока, и исключение не перехватывается.
-
sys.exitfunc -
Это значение фактически не определено модулем, но может быть установлено пользователем (или программой) для задания действия по очистке при выходе программы. При установке это должна быть безаргументная функция. Эта функция будет вызвана при выходе интерпретатора. В этом способе может быть установлена только одна функция; для того, чтобы разрешить несколько функций, которые будут вызываться при завершении, используйте модуль
atexit.Примечание
Функция выхода не вызывается, когда программа убивается сигналом, когда обнаружена внутренняя ошибка Python, или когда
os._exit()вызывается.Устарело начиная с версии 2.4: Используйте
atexitвместо этого.
-
sys.flags -
Последовательность структур flags отображает состояние флагов командной строки. Атрибуты только для чтения.
атрибут
флаг
debugpy3k_warningdivision_warningdivision_newinteractiveoptimizeno_user_siteno_siteignore_environmenttabcheckverbosebytes_warninghash_randomizationДобавлена в версии 2.6.
Добавлена в версии 2.7.3: Атрибут
hash_randomization.
-
sys.float_info -
Структурная последовательность, содержащая информацию о типе float. Она содержит низкоуровневую информацию о точности и внутреннем представлении. Значения соответствуют различным константам с плавающей запятой, определённым в стандартном заголовочном файле
float.hязыка программирования ‘C’; см. раздел 5.2.4.2.2 стандарта ISO/IEC C 1999 [C99], «Характеристики типов с плавающей запятой», для получения подробной информации.атрибут
макрос float.h
объяснение
epsilonDBL_EPSILON
разница между 1 и наименьшим значением, большим 1, которое может быть представлено как float
digDBL_DIG
максимальное количество десятичных цифр, которые могут быть верно представлены в float; см. ниже
mant_digDBL_MANT_DIG
точность float: количество цифр по основанию
radixв мантиссе floatDBL_MAX
максимальное представимое конечное float
max_expDBL_MAX_EXP
максимальное целое число e такое, что
radix**(e-1)является представимым конечным floatmax_10_expDBL_MAX_10_EXP
максимальное целое число e такое, что
10**eнаходится в диапазоне представимых конечных floatDBL_MIN
минимальное положительное нормализованное 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' # decimal string with 15 significant digits >>> format(float(s), '.15g') # convert to float and back -> same value '3.14159265358979'
Но для строк с более чем
sys.float_info.digзначащими цифрами это не всегда верно:>>> s = '9876543211234567' # 16 significant digits is too many! >>> format(float(s), '.16g') # conversion changes value '9876543211234568'
Добавлена в версии 2.6.
-
sys.float_repr_style -
Строка, указывающая, как функция
repr()ведет себя для чисел с плавающей точкой. Если строка имеет значение'short', то для конечного числа с плавающей точкойx, функцияrepr(x)стремится произвести короткую строку с тем свойством, чтоfloat(repr(x)) == x. Это обычное поведение в Python 2.7 и более поздних версиях. В противном случае,float_repr_styleимеет значение'legacy'иrepr(x)ведет себя так же, как и в версиях Python до 2.7.Новая в версии 2.7.
-
sys.getcheckinterval() -
Возвращает «интервал проверки» интерпретатора; см.
setcheckinterval().Новая в версии 2.3.
-
sys.getdefaultencoding() -
Возвращает имя текущего кодирования строк по умолчанию, используемого реализацией Unicode.
Новая в версии 2.0.
-
sys.getdlopenflags() -
Возвращает текущее значение флагов, используемых для
dlopen()вызовов. Постоянные флаги определены в модуляхdlиDLFCN. Доступность: Unix.Новая в версии 2.2.
-
sys.getfilesystemencoding() -
Возвращает имя кодирования, используемого для преобразования имен файлов Unicode в имена файлов системы, или
None, если используется системное кодирование по умолчанию. Результат зависит от операционной системы:- В Mac OS X кодирование равно
'utf-8'. - В Unix кодирование — это предпочтение пользователя в соответствии с результатом nl_langinfo(CODESET), или
None, еслиnl_langinfo(CODESET)не удалось. - В Windows NT+, имена файлов являются Unicode по умолчанию, поэтому преобразование не выполняется.
getfilesystemencoding()все равно возвращает'mbcs', так как это кодирование, которое приложения должны использовать, когда они явно хотят преобразовать строки Unicode в строки байтов, которые эквивалентны при использовании в качестве имён файлов. - В Windows 9x кодирование равно
'mbcs'.
Новая в версии 2.3.
- В Mac OS X кодирование равно
-
sys.getrefcount(object) -
Возвращает счётчик ссылок объекта object. Возвращаемый счёт обычно на единицу больше ожидаемого, так как он включает (временную) ссылку в качестве аргумента функции
getrefcount().
-
sys.getrecursionlimit() -
Возвращает текущее значение предела рекурсии, максимальную глубину стека интерпретатора Python. Этот предел предотвращает бесконечную рекурсию, которая может привести к переполнению стека C и аварийному завершению работы Python. Его можно установить с помощью
setrecursionlimit().
-
sys.getsizeof(object[, default]) -
Возвращает размер объекта в байтах. Объект может быть любого типа. Все встроенные объекты вернут правильные результаты, но это не обязательно должно выполняться для расширений сторонних разработчиков, так как это зависит от реализации.
Если задан, default будет возвращён, если объект не предоставляет средства для получения размера. В противном случае будет поднята ошибка
TypeError.getsizeof()вызывает метод__sizeof__объекта и добавляет дополнительную нагрузку сборщика мусора, если объект управляется сборщиком мусора.Новая в версии 2.6.
-
sys._getframe([depth]) -
Возвращает объект кадра из стека вызовов. Если задан необязательный целочисленный параметр depth, возвращает объект кадра на указанное количество вызовов ниже вершины стека. Если это глубже, чем стек вызовов, возникает ошибка
ValueError. По умолчанию depth равен нулю, возвращая кадр на вершине стека вызовов.Подробность реализации CPython: Эта функция должна использоваться только для внутренних и специализированных целей. Она не гарантируется в всех реализациях Python.
-
sys.getprofile() -
Получить функцию профилирования, установленную с помощью
setprofile().Новая в версии 2.6.
-
sys.gettrace() -
Получить функцию отслеживания, установленную с помощью
settrace().Подробность реализации CPython: Функция
gettrace()предназначена только для реализации отладчиков, профилеров, инструментов покрытия кода и т. п. Ее поведение является частью платформы реализации, а не частью определения языка, и, следовательно, может быть недоступна во всех реализациях Python.Новая в версии 2.6.
-
sys.getwindowsversion() -
Возвращает кортеж с именами, описывающий текущую версию Windows. Имена элементов: major, minor, build, platform, service_pack, service_pack_minor, service_pack_major, suite_mask и product_type. service_pack содержит строку, а все остальные значения — целые числа. К компонентам также можно получить доступ по имени, поэтому
sys.getwindowsversion()[0]эквивалентноsys.getwindowsversion().major. Для совместимости с предыдущими версиями доступны только первые 5 элементов по индексации.platform может принимать следующие значения:
Постоянная
Платформа
0 (VER_PLATFORM_WIN32s)Win32s в Windows 3.1
1 (VER_PLATFORM_WIN32_WINDOWS)Windows 95/98/ME
2 (VER_PLATFORM_WIN32_NT)Windows NT/2000/XP/x64
3 (VER_PLATFORM_WIN32_CE)Windows CE
product_type может принимать следующие значения:
Постоянная
Значение
1 (VER_NT_WORKSTATION)Система — рабочая станция.
2 (VER_NT_DOMAIN_CONTROLLER)Система — контроллер домена.
3 (VER_NT_SERVER)Система — сервер, но не контроллер домена.
Эта функция оборачивает функцию Win32
GetVersionEx(); для получения дополнительной информации об этих полях см. документацию Microsoft поOSVERSIONINFOEX().Доступность: Windows.
Новая в версии 2.3.
Изменено в версии 2.7: Изменено на кортеж с именами и добавлены service_pack_minor, service_pack_major, suite_mask и product_type.
-
sys.hexversion -
Номер версии, закодированный в одном целом числе. Это гарантированно увеличивается с каждой версией, включая надлежащую поддержку непроизводственных выпусков. Например, чтобы проверить, что интерпретатор Python — не ниже версии 1.5.2, используйте:
if sys.hexversion >= 0x010502F0: # use some advanced feature ... else: # use an alternative implementation or warn the user ...Это называется
hexversion, так как оно имеет смысл только при просмотре результата, полученного при передаче его во встроенную функциюhex(). Значениеversion_infoможет быть использовано для более удобного для человека кодирования той же информации.Значение
hexversion— 32-битное число со следующей структурой:Биты (строка big endian)
Значение
1-8PY_MAJOR_VERSION(число2в2.1.0a3)9-16PY_MINOR_VERSION(число1в2.1.0a3)17-24PY_MICRO_VERSION(число0в2.1.0a3)25-28PY_RELEASE_LEVEL(0xAдля альфа-версий,0xBдля бета-версий,0xCдля кандидатов в релиз и0xFдля финальной версии)29-32PY_RELEASE_SERIAL(число3в2.1.0a3, ноль для финальных релизов)Таким образом,
2.1.0a3— это шестнадцатеричная версия0x020100a3.Новая в версии 1.5.2.
-
sys.long_info -
Последовательность структур, содержащая информацию об внутренней представлении целых чисел в Python. Атрибуты только для чтения.
Атрибут
Описание
bits_per_digitколичество битов, хранимых в каждом разряде. Целые числа Python хранятся во внутренней системе счисления с основанием
2**long_info.bits_per_digitsizeof_digitразмер в байтах типа C, используемого для представления разряда
Новая в версии 2.7.
-
sys.last_type -
sys.last_value -
sys.last_traceback -
Эти три переменные не всегда определены; они устанавливаются, когда исключение не обрабатывается, и интерпретатор выводит сообщение об ошибке и трассировку стека. Их предполагаемое использование заключается в том, чтобы позволить интерактивному пользователю импортировать модуль отладчика и выполнить постобработку отладки без необходимости повторного выполнения команды, которая вызвала ошибку. (Типичное использование —
import pdb; pdb.pm()для входа в отладчик постобработки; см. главу pdb — Отладчик Python для получения дополнительной информации.)Значение переменных совпадает со значениями возвращаемых результатов из
exc_info()выше. (Поскольку существует только один интерактивный поток, безопасность потоков для этих переменных не является проблемой, в отличие отexc_typeи т. д.)
-
sys.maxint -
Наибольшее положительное целое число, поддерживаемое регулярным типом целых чисел Python. Это как минимум 2**31-1. Наибольшее отрицательное целое число —
-maxint-1— асимметрия возникает из-за использования двоичной арифметики со знаком дополнения до 2.
-
sys.maxsize -
Наибольшее положительное целое число, поддерживаемое типом Py_ssize_t платформы, и, следовательно, максимальный размер списков, строк, словарей и многих других контейнеров.
-
sys.maxunicode -
Целое число, задающее наибольший поддерживаемый код для символа Юникод. Значение зависит от параметра конфигурации, который определяет, хранятся ли символы Юникода в формате UCS-2 или UCS-4.
-
sys.meta_path -
Список объектов-«поисковиков», чьи методы
find_module()вызываются для проверки, может ли один из объектов найти модуль для импорта. Методfind_module()вызывается как минимум с абсолютным именем импортируемого модуля. Если импортируемый модуль содержится в пакете, то атрибут родительского пакета__path__передаётся в качестве второго аргумента. Метод возвращаетNoneесли модуль не найден, иначе возвращает «загрузчик».sys.meta_pathпроверяется до явных модулей-поисковиков илиsys.path.См. PEP 302 для первоначального описания.
-
sys.modules -
Это словарь, который сопоставляет имена модулей с модулями, которые уже были загружены. Это можно изменять для принудительной перезагрузки модулей и других операций. Обратите внимание, что удаление модуля из этого словаря не эквивалентно вызову
reload()соответствующего объекта модуля.
-
sys.path -
Список строк, указывающий путь поиска модулей. Инициализируется из переменной среды
PYTHONPATH, а также установки зависимого по умолчанию.При запуске программы первым элементом этого списка,
path[0], является каталог, содержащий сценарий, который использовался для вызова интерпретатора Python. Если каталог сценария недоступен (например, если интерпретатор вызывается интерактивно или если сценарий считывается из стандартного ввода),path[0]является пустой строкой, что указывает Python на поиск модулей в текущем каталоге в первую очередь. Обратите внимание, что каталог сценария вставляется перед записями, добавленными в результатеPYTHONPATH.Программа свободна изменять этот список по своему усмотрению.
Изменено в версии 2.3: Строки Юникод больше не игнорируются.
-
sys.path_hooks -
Список вызываемых функций, которые принимают аргумент пути для попытки создания «поисковика» для пути. Если поисковик можно создать, функция должна его вернуть, иначе следует поднять
ImportError.Первоначально указано в PEP 302.
-
sys.path_importer_cache -
Словарь, используемый в качестве кэша для объектов-«поисковиков». Ключи — пути, которые были переданы
sys.path_hooks, а значения — найденные поисковики. Если путь является действительным путём файловой системы, но явный поисковик не найден вsys.path_hooks, тоNoneхранится для представления использования неявного поисковика по умолчанию. Если путь не является существующим путём, то устанавливаетсяimp.NullImporter.Первоначально указано в PEP 302.
-
sys.platform -
Эта строка содержит идентификатор платформы, который можно использовать для добавления компонентов, специфичных для платформы, к
sys.path, например.Для большинства Unix-систем это имя ОС в нижнем регистре, возвращаемое
uname -sс первой частью версии, возвращённойuname -rдобавленной, например,'sunos5', в момент компиляции Python. Поэтому, если вы не хотите проверять конкретную версию системы, рекомендуется использовать следующий фрагмент кода:if sys.platform.startswith('freebsd'): # FreeBSD-specific code here... elif sys.platform.startswith('linux'): # Linux-specific code here...Изменено в версии 2.7.3: Поскольку много кода проверяет
sys.platform == 'linux2', и между Linux 2.x и 3.x нет существенных изменений,sys.platformвсегда устанавливается в'linux2', даже на Linux 3.x. В Python 3.3 и более поздних версиях значение всегда устанавливается в'linux', поэтому рекомендуется всегда использовать приведенный выше фрагмент кодаstartswith.Для других систем значения следующие:
Система
Значение
platformLinux (2.x и 3.x)
'linux2'Windows
'win32'Windows/Cygwin
'cygwin'Mac OS X
'darwin'OS/2
'os2'OS/2 EMX
'os2emx'RiscOS
'riscos'AtheOS
'atheos'См. также
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, например2.7.
-
sys.ps1 -
sys.ps2 -
Строки, определяющие первичный и вторичный приглашения интерпретатора. Они определяются только если интерпретатор в интерактивном режиме. Их начальные значения в этом случае —
'>>> 'и'... '. Если нестроковый объект присваивается любой из переменных, егоstr()переоценивается каждый раз, когда интерпретатор готов прочитать новую интерактивную команду; это можно использовать для реализации динамического приглашения.
-
sys.py3kwarning -
Булево значение, содержащее состояние флага предупреждения Python 3. Оно равно
Trueпри запуске Python с опцией -3. (Это следует рассматривать как только для чтения; изменение его значения не влияет на предупреждения Python 3.)Новое в версии 2.6.
-
sys.setcheckinterval(interval) -
Установить «интервал проверки» интерпретатора. Это целочисленное значение определяет, как часто интерпретатор проверяет периодические вещи, такие как переключение потоков и обработчики сигналов. Значение по умолчанию —
100, что означает, что проверка выполняется каждые 100 виртуальных инструкций Python. Увеличение этого значения может повысить производительность программ, использующих потоки. Установка значения<=0 проверяет каждую виртуальную инструкцию, максимизируя отзывчивость и накладные расходы.
-
sys.setdefaultencoding(name) -
Установить текущее кодирование по умолчанию для строк, используемое реализацией Unicode. Если name не соответствует ни одному из доступных кодирований, генерируется
LookupError. Эта функция предназначена только для использования реализацией модуляsiteи, при необходимости, дляsitecustomize. После использования модулемsiteона удаляется из пространства имен модуляsys.Новое в версии 2.0.
-
sys.setdlopenflags(n) -
Установить флаги, используемые интерпретатором для вызовов
dlopen(), таких как при загрузке расширенных модулей. Среди прочего, это позволит выполнить ленивое разрешение символов при импорте модуля, если вызвать какsys.setdlopenflags(0). Для совместного использования символов между расширенными модулями вызовите какsys.setdlopenflags(dl.RTLD_NOW | dl.RTLD_GLOBAL). Символьные имена модулей флагов можно найти в модулеdlили в модулеDLFCN. ЕслиDLFCNнедоступен, он может быть сгенерирован из/usr/include/dlfcn.hс помощью скрипта h2py. Доступность: Unix.Новое в версии 2.2.
-
sys.setprofile(profilefunc) -
Установить функцию профилирования системы, что позволяет реализовать профайлер кода Python в Python. Подробнее о профайлере Python см. главу Профайлеры Python. Функция профилирования системы вызывается аналогично функции отслеживания системы (см.
settrace()), но вызывается с различными событиями, например, она не вызывается для каждой выполняемой строки кода (только при вызове и возвращении, но событие возврата сообщается даже при возникновении исключения). Функция специфична для потока, но нет способа для профайлера узнать о переключениях контекста между потоками, поэтому использовать её в присутствии нескольких потоков не имеет смысла. Кроме того, её возвращаемое значение не используется, поэтому она может просто вернутьNone.Функции профилирования должны иметь три аргумента: 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.setrecursionlimit(limit) -
Установить максимальную глубину стека интерпретатора Python на limit. Это ограничение предотвращает бесконечную рекурсию, которая может привести к переполнению стека C и сбою Python.
Максимальное возможное ограничение зависит от платформы. Пользователю может потребоваться установить более высокое ограничение, когда программа требует глубокой рекурсии и платформа поддерживает более высокое ограничение. Это следует делать осторожно, потому что слишком высокое ограничение может привести к сбою.
-
sys.settrace(tracefunc) -
Установить функцию отслеживания системы, которая позволяет реализовать отладчик кода Python в Python. Функция специфична для потока; чтобы отладчик поддерживал несколько потоков, он должен быть зарегистрирован с помощью
settrace()для каждого потока, который нужно отлаживать.Функции отслеживания должны иметь три аргумента: frame, event и arg. frame — текущая кадр стека. event — строка:
'call','line','return'или'exception'. arg зависит от типа события.Функция отслеживания вызывается (с event установленным в
'call'), когда вводится новая область видимости; она должна возвращать ссылку на локальную функцию отслеживания, которая будет использоваться в этой области видимости, илиNoneесли область видимости не должна отслеживаться.Локальная функция отслеживания должна возвращать ссылку на себя (или на другую функцию для дальнейшего отслеживания в этой области видимости) или
Noneдля отключения отслеживания в этой области видимости.События имеют следующее значение:
-
'call' -
Функция вызывается (или какая-либо другая область кода введена). Глобальная функция отслеживания вызывается; arg —
None; возвращаемое значение определяет локальную функцию отслеживания. -
'line' -
Интерпретатор собирается выполнить новую строку кода или повторно выполнить условие цикла. Вызывается локальная функция отслеживания; arg —
None; возвращаемое значение определяет новую локальную функцию отслеживания. См.Objects/lnotab_notes.txtдля подробного объяснения работы. -
'return' -
Функция (или другая область кода) возвращает управление. Локальная функция отслеживания вызывается; arg — значение, которое будет возвращено, или
Noneесли событие вызвано возникновением исключения. Возвращаемое значение функции отслеживания игнорируется. -
'exception' -
Произошло исключение. Вызывается локальная функция отслеживания; arg — кортеж
(exception, value, traceback); возвращаемое значение определяет новую локальную функцию отслеживания.
Обратите внимание, что по мере распространения исключения вниз по цепочке вызывающих функций для каждого уровня генерируется событие
'exception'.Для получения дополнительной информации об объектах кода и кадров см. Стандартная иерархия типов.
Подробность реализации CPython: Функция
settrace()предназначена только для реализации отладчиков, профайлеров, инструментов покрытия кода и тому подобного. Её поведение является частью реализации платформы, а не частью определения языка, и поэтому может быть недоступно во всех реализациях Python. -
-
sys.settscdump(on_flag) -
Активировать выгрузку измерений виртуальной машины с использованием счётчика временных меток Pentium, если on_flag имеет значение true. Деактивировать эти выгрузки, если on_flag имеет значение false. Функция доступна только если Python был скомпилирован с
--with-tsc. Чтобы понять вывод этой выгрузки, обратитесь кPython/ceval.cв исходных текстах Python.Новое в версии 2.4.
Подробность реализации CPython: Эта функция тесно связана с деталями реализации CPython и поэтому, скорее всего, не будет реализована в других интерпретаторах.
-
sys.stdin -
sys.stdout -
sys.stderr -
Объекты файлов, соответствующие стандартным потокам ввода, вывода и ошибок интерпретатора.
stdinиспользуется для всего ввода интерпретатора, кроме скриптов, но включая вызовыinput()иraw_input().stdoutиспользуется для выводаprintи операторов выражения, а также для подсказокinput()иraw_input(). Собственные подсказки интерпретатора и (почти все) его сообщения об ошибках отправляются вstderr.stdoutиstderrне обязательно должны быть встроенными объектами файлов: любой объект приемлем, если у него есть методwrite(), принимающий строковый аргумент. (Изменение этих объектов не влияет на стандартные потоки ввода-вывода процессов, выполняемых с помощьюos.popen(),os.system()или семейства функцийexec*()в модулеos.)
-
sys.__stdin__ -
sys.__stdout__ -
sys.__stderr__ -
Эти объекты содержат исходные значения
stdin,stderrиstdoutв начале программы. Они используются во время завершения и могут быть полезны для вывода в фактический стандартный поток, независимо от того, был ли перенаправлен объектsys.std*.Это также может быть использовано для восстановления фактических файлов до известных рабочих объектов файлов в случае их перезаписи нерабочим объектом. Однако предпочтительный способ сделать это — явно сохранить предыдущий поток перед его заменой и восстановить сохраненный объект.
-
sys.subversion -
Тройка (repo, branch, version), представляющая информацию Subversion интерпретатора Python. repo — имя хранилища,
'CPython'. branch — строка одного из форматов'trunk','branches/name'или'tags/name'. version — результатsvnversion, если интерпретатор был построен из Subversion checkout; он содержит номер (диапазон) ревизии и, возможно, конечный символ ‘M’, если были местные изменения. Если дерево было экспортировано (или svnversion был недоступен), это ревизияInclude/patchlevel.h, если ветка является тегом. В противном случае этоNone.Введено в версии 2.5.
Примечание
Python теперь разрабатывается с использованием Git. Поэтому в последних исправлениях Python 2.7,
subversionсодержит заполнительную информацию. Он удален в Python 3.3.
-
sys.tracebacklimit -
Если эта переменная установлена в целое значение, она определяет максимальное количество уровней информации об отслеживании ошибок, печатаемых при возникновении необработанного исключения. Значение по умолчанию —
1000. Если установлено значение0или меньше, вся информация об отслеживании ошибок подавляется, и печатаются только тип и значение исключения.
-
sys.version -
Строка, содержащая номер версии интерпретатора Python плюс дополнительную информацию о номере сборки и используемом компиляторе. Эта строка отображается при запуске интерактивного интерпретатора. Не извлекайте информацию о версии из неё, вместо этого используйте
version_infoи функции, предоставляемые модулемplatform.
-
sys.api_version -
Версия C API для этого интерпретатора. Разработчикам это может быть полезно при отладке конфликтов версий между Python и модулями расширений.
Введено в версии 2.3.
-
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и так далее.Введено в версии 2.0.
Изменено в версии 2.7: Добавлены атрибуты именованных компонентов
-
sys.warnoptions -
Это деталь реализации фреймворка предупреждений; не изменяйте это значение. Обратитесь к модулю
warningsдля получения дополнительной информации о фреймворке предупреждений.
-
sys.winver -
Номер версии, используемый для формирования ключей реестра на платформах Windows. Он хранится в качестве строкового ресурса 1000 в библиотеке Python DLL. Значение обычно является первыми тремя символами
version. Он предоставляется в модулеsysдля информационных целей; изменение этого значения не влияет на используемые Python ключи реестра. Доступность: Windows.
Список литературы
-
C99 -
ISO/IEC 9899:1999. «Языки программирования — C». Публичный проект этого стандарта доступен по адресу http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/sys.html