Системный модуль Python
Модуль python sys предоставляет функции и переменные, которые используются для управления различными частями среды выполнения Python. Это позволяет получить доступ к системным параметрам и функциям.
import sys
Первое условие – мы должны импортировать модуль sys в нашу программу перед запуском каких-либо функций.
sys.modules
Эта функция предоставляет имя существующих модулей Python, которые были импортированы.
sys.argv
Возвращает список аргументов командной строки, переданных скрипту Python. Именем сценария всегда является элемент с индексом 0, а остальные аргументы сохраняются в последующих индексах.
sys.base_exec_prefix
Эта функция обеспечивает эффективный способ получения того же значения, что и exec_prefix. Если виртуальная среда не запущена, значение останется прежним.
sys.base_prefix
Устанавливается во время запуска Python перед запуском site.py с тем же значением, что и prefix.
sys.byteorder
Индикация собственного byteorder, обеспечивающая эффективный способ что-то делать.
sys.maxsize
Эта функция возвращает наибольшее целое число переменной.
sys.path
Показывает PYTHONPATH, установленный в текущей системе. Это переменная среды, которая является путем поиска для всех модулей Python.
sys.stdin
Это объект, который содержит исходные значения stdin в начале программы и используется во время завершения. Он может восстановить файлы.
sys.getrefcount
Эта функция возвращает счетчик ссылок объекта.
sys.exit
Используется для выхода либо из консоли Python, либо из командной строки, а также используется для выхода из программы в случае исключения.
sys executable
Значение этой функции – абсолютный путь к интерпретатору Python. Нужна для того, чтобы узнать, где установлен python на другом компьютере.
sys.platform
Значение этой функции используется для идентификации платформы, над которой мы работаем.
Модуль sys в Python
Модуль sys в Python предоставляет простые функции, которые позволяют нам напрямую взаимодействовать с интерпретатором.
Функции, предоставляемые модулем sys, позволяют нам работать с базовым интерпретатором, независимо от того, является ли он платформой Windows, Macintosh или Linux. В этом уроке мы рассмотрим эти функции и то, что с ними можно сделать.
import sys
Обратите внимание, что перед запуском каких-либо функций нам необходимо импортировать их, используя команду ниже.
sys.modules
Эта функция дает имена существующих модулей Python, импортированных текущей оболочкой. Выполним это в системе:
Я удалил много модулей, так как изначально Python по умолчанию импортирует много модулей. Таким образом, вывод может отличаться, когда вы выполните эту команду в настройках.
sys.argv
Эта функция собирает аргументы String, передаваемые скрипту python. Давайте выполним это в системе, написав скрипт:
sys.path
Эта функция просто отображает PYTHONPATH, установленный в текущей системе. Давайте выполним это в системе, написав скрипт:
sys.stdin
Эта функция используется для взятия. Давайте выполним это в системе, написав скрипт:
Вероятно, это наиболее часто используемая функция в модуле sys, так как это стандартный способ получения ввода от пользователя.
sys.copyright
Эта строка просто отображает информацию об авторских правах на текущую установленную версию Python. Давайте выполним это в системе, написав скрипт:
sys.exit
Этот метод заставляет интерпретатор внезапно завершать текущий поток выполнения. Давайте выполним это в системе, написав скрипт:
sys.getrefcount
Этот метод модуля sys возвращает количество ссылок на объект, в котором он используется. Python отслеживает это значение, поскольку, когда это значение достигает 0 в программе, память для этой переменной очищается. Давайте выполним это в системе, написав скрипт:
sys — Системоспецифичные параметры и функции¶
Модуль обеспечивает доступ к некоторым переменным, используемый или поддерживаемым интерпретатор, и к функциям, которые тесно взаимодействуют с интерпретатор. Он всегда доступен.
Изменено в версии 3.8: Флаги по умолчанию стали пустым строка ( m флаг для pymalloc был удален).
Добавлено в версии 3.2.
Добавить вызываемый hook в список активных хуки аудита для текущего интерпретатора.
См. таблица событий аудита для всех событий, поднимемых CPython, и PEP 578 для обсуждения оригинального дизайна.
Добавлено в версии 3.8.
sys.audit() вызовет существующие хуки аудита, передав имя события и аргументы, и повторно вызовет первое исключение из любого обработчика. Как правило, если возникает исключение, его не следует обрабатывать, а процесс должен быть завершен как можно быстрее. Это позволяет реализациям хуков решать, как реагировать на определенные события: они могут просто зарегистрировать событие или прервать операцию, вызвав исключение.
См. таблица событий аудита для всех событий, вызванных CPython.
Добавлено в версии 3.8.
Добавлено в версии 3.3.
Добавлено в версии 3.3.
Индикатор собственного порядка байтов. Это будет иметь значение ‘big’ на платформах big-endian (старший байт первый), а ‘little’ на платформах little-endian (первый байт с наименьшей значимостью).
Кортеж строки, дающий названия всех модулей, скомпилированных в этот Python интерпретатор. (Эта информация недоступна другим способом — modules.keys() перечисляет только импортированные модули.
sys. call_tracing ( func, args ) ¶
Строка, содержащий авторские права, относящиеся к Python интерпретатору.
Очистить кэш внутреннего типа. Для ускорения поиска кэш и методов используемый тип атрибут. Использовать только функцию, чтобы удалить ненужные ссылки во время отладки утечки ссылок.
Эта функция должна быть используемый только для внутренних и специализированных целей.
Возвращает словарь, отображающий каждый идентификатор поток на самый верхний фрейм стека, активный в данный момент в этом поток во время вызова функции. Следует отметить, что функции в модуле traceback могут создавать стек вызовов с таким фрейм.
Это наиболее полезно для отладки взаимоблокировки: эта функция не требует взаимоблокировки потоков, и такие стеки вызовов потоки замораживаются до тех пор, пока они остаются взаимоблокированными. фрейм, возвращенный для поток без взаимоблокировки, может не иметь отношения к текущей активности поток к моменту, когда вызывающий код проверяет фрейм.
Эта функция должна быть используемый только для внутренних и специализированных целей.
Raises an auditing event sys._current_frames with no arguments.
Обратите внимание, что если при импорте вызываемого объекта с именем PYTHONBREAKPOINT происходит что-то не так, сообщается о RuntimeWarning и точка останова игнорируется.
Также следует отметить, что если sys.breakpointhook() переопределяется программным путем, PYTHONBREAKPOINT не консультируется.
Добавлено в версии 3.7.
Распечатайте низкоуровневое stderr информацию о состояние устройства распределения памяти CPython.
Если Python настроен –with-pydebug, он также выполняет некоторые дорогостоящие внутренние проверки непротиворечивости.
Добавлено в версии 3.3.
Детали реализации CPython: Эта функция специфична для CPython. Точный формат вывода здесь не определен и может измениться.
Целое число, указывающее дескриптор библиотеки DLL Python.
sys. displayhook ( value ) ¶
Относительный путь интерпретируется относительно текущего рабочего каталога.
Добавлено в версии 3.8.
При возникновении и отсутствии исключения интерпретатор вызывает sys.excepthook с тремя аргументами: класс исключения, сущность исключения и объект трейсбэк. В интерактивном сеансе это происходит непосредственно перед возвращенный элемента управления в подсказку; в Python программе это происходит непосредственно перед выходом из программы. Обработка таких исключений верхнего уровня может быть настроена путем назначения sys.excepthook другой функции с тремя аргументами.
Добавлено в версии 3.7: __breakpointhook__
Добавлено в версии 3.8: __unraisablehook__
Эта функция возвращает кортеж из трех значения, которые предоставляют информацию об особой ситуации, которая в настоящее время обрабатывается. Информационный возвращенный относится как к текущему поток, так и к текущему стеку фрейм. Если текущий фрейм стека не обрабатывает исключение, информация берется от вызывающего фрейм стека или его вызывающего абонента и т.д. до тех пор, пока не будет найден фрейм стека, который обрабатывает исключение. Здесь «обработка исключения» определяется как «выполнение исключения» клаузула. Для любого фрейм стека доступна только информация о обрабатываемом исключении.
Выход из Python. Это реализуется путём поднятия SystemExit исключения, поэтому выполняются действия очистки, определенные заключительными предложениями try инструкции, и возможно перехватить попытку выхода на внешнем уровне.
Поскольку exit() в конечном итоге «только» вызывает исключение, он будет выходить из процесса только при вызове из основного поток, и исключение не перехватывается.
Изменено в версии 3.6: Если ошибка происходит в очистке после того, как Python интерпретатор поймал SystemExit (такой как ошибка при смывании буферизованных данных в стандартных потоках), статус выхода изменен на 120.
В именованный кортеж flags отображается состояние флагов командной строки. Эти атрибуты доступны только для чтения.
Добавлено в версии 3.2.3: hash_randomization атрибут.
Изменено в версии 3.3: Удалены устаревшие division_warning атрибут.
В именованный кортеж содержится информация о типе float. Содержит сведения низкого уровня о точности и внутреннем представлении. Эти значения соответствуют различным константам с плавающей запятой, определенным в стандартном файле заголовка, float.h для языка программирования «C»; подробнее см. раздел 5.2.4.2.2 стандарта ISO/IEC C 1999 года [C99] «Характеристики плавающих типов».
| атрибут | float.h макрос | объяснение |
|---|---|---|
| epsilon | DBL_EPSILON | разница между 1.0 и наименьшим значением больше 1.0, который представляется в виде числа с float |
| dig | DBL_DIG | максимальное количество десятичных цифр, которые могут быть точно представлены в float; см. ниже |
| mant_dig | DBL_MANT_DIG | точность float: число базовых цифр radix в значении и значении с плавающей точкой |
| max | DBL_MAX | максимальная представляемая положительная конечная float |
| max_exp | DBL_MAX_EXP | максимальное целое число e так что radix**(e-1) является представимым конечным float |
| max_10_exp | DBL_MAX_10_EXP | максимальное целое число e так что 10**e находится в диапазоне представимых конечных плавающих чисел |
| min | DBL_MIN | минимальный представляемый положительный normalized float |
| min_exp | DBL_MIN_EXP | минимальное целое число e, так что radix**(e-1) является нормированным float |
| min_10_exp | DBL_MIN_10_EXP | минимальное целое число e, так что 10**e является нормированным float |
| radix | FLT_RADIX | радиус представления экспоненты |
| rounds | FLT_ROUNDS | целочисленная константа, представляющая режим округления, используемый для арифметических операций. Это отражает значение системы FLT_ROUNDS макроса во время запуска интерпретатора. См. раздел 5.2.4.2.2 стандарта C99 для объяснения возможных значений и их смыслов. |
Атрибут sys.float_info.dig нуждается в дальнейшем объяснении. Если s некоторая строка, представляющий десятичное число с не более чем sys.float_info.dig значащими цифрами, то преобразование s в float и обратно восстановит строка, представляющий тот же самый десятичный значение:
Но для строки с более чем sys.float_info.dig значимыми цифрами это не всегда верно:
Добавлено в версии 3.1.
Если построение или реализация Python не могут разумно вычислить эту информацию, getallocatedblocks() разрешается вместо этого возвращает 0.
Добавлено в версии 3.4.
Возвращает время сборки API версии Android как целое число.
Добавлено в версии 3.7.
Возвращает название текущего строка кодировка используемый по умолчанию внедрением Юникод.
Возвращает имя кодировка используемый для преобразования между именами файлов в юникоде и именами файлов в байтах. Для лучшей совместимости str следует используемый для имен файлов во всех случаях, хотя также поддерживается представление имен файлов в виде байтов. Функции, принимающие или возвращающие имена файлов, должны поддерживать str или bytes и внутренне преобразовывать в предпочтительное представление системы.
Эта кодировка всегда совместима с ASCII.
os.fsencode() и os.fsdecode() должны быть используемый для обеспечения используемый правильного режима кодировка и ошибок.
Изменено в версии 3.7: Возвращает «utf-8» в режиме UTF-8.
os.fsencode() и os.fsdecode() должны быть используемый для обеспечения используемый правильного режима кодировка и ошибок.
Добавлено в версии 3.6.
Возвращает размер объекта в байтах. Объект может быть любым типом объекта. Все встроенные объекты будут возвращает правильные результаты, но это не обязательно должно быть верным для сторонних расширений, поскольку это специфично для реализации.
Учитывается только потребление памяти, непосредственно приписанное объекту, а не потребление памяти объектов, на которые он ссылается.
getsizeof() вызывает метод __sizeof__ объекта и добавляет дополнительные служебные данные сборщика мусора, если объект управляется сборщиком мусора.
Добавлено в версии 3.2.
Возвращает объект фрейма из стека вызовов. Если задано необязательное целочисленное depth, возвращает объект фрейм, который многие вызывают под верхом стека. Если это глубже стека вызовов, ValueError поднимается. Значение по умолчанию для depth равно нулю, возвращая фрейм в верхней части стека вызовов.
Raises an auditing event sys._getframe with no arguments.
Детали реализации CPython: Эта функция должна быть используемый только для внутренних и специализированных целей. Он не гарантированно существует во всех реализациях Python.
Детали реализации CPython: Функция gettrace() предназначена только для реализации отладчиков, профилировщиков, инструментов покрытия и т.п. Его поведение является частью платформы реализации, а не частью определения языка, и, таким образом, может быть доступно не во всех реализациях Python.
product_type может быть одним из следующих значений:
| Константа | Значение |
|---|---|
| 1 (VER_NT_WORKSTATION) | Система является рабочей станцией. |
| 2 (VER_NT_DOMAIN_CONTROLLER) | Система является контроллером домена. |
| 3 (VER_NT_SERVER) | Система является сервером, а не контроллером домена. |
platform_version возвращает точную основную версию, младшую версию и номер сборки текущей операционной системы, а не версию, эмулируемую для процесса. Он предназначен для использования в логирование, а не для обнаружения признаков.
Изменено в версии 3.2: Изменен на именованный кортеж и добавлены service_pack_minor, service_pack_major, suite_mask и product_type.
Изменено в версии 3.6: Добавленный platform_version
Добавлено в версии 3.6: Дополнительные сведения см. в разделе PEP 525.
Эта функция была добавлена на временной основе (подробнее см. PEP 411)
Добавлено в версии 3.7.
Эта функция была добавлена на временной основе (подробнее см. PEP 411). Использовать его только для отладки.
| атрибут | объяснение |
|---|---|
| width | ширина в битах, используемый для хеш- значений |
| modulus | простой модуль P, используемый для числовой хэш-схемы |
| inf | значение хеша возвращается для положительной бесконечности |
| nan | хэш-значение возвращаемое для nan |
| imag | множитель используемый для мнимой части комплексного числа |
| algorithm | имя алгоритма хеширования str, байта и memoryview |
| hash_bits | внутренний выходной размер хэш-алгоритма |
| seed_bits | размер начального ключа алгоритма хеширования |
Добавлено в версии 3.2.
Изменено в версии 3.4: Добавлены algorithm, hash_bits и seed_bits
Номер версии кодированный как одно целое число. Это гарантированно увеличивается с каждой версией, включая надлежащую поддержку непроизводственных выпусков. Например, чтобы проверить, что Python интерпретатор не менее версии 1.5.2, используйте:
Объект, содержащий сведения о реализации текущего Python интерпретатор. Следующие атрибуты должны существовать во всех реализациях Python.
sys.implementation может содержать дополнительные атрибуты, специфичные для реализации Python. Эти нестандартные атрибуты должны начинаться с подчеркивания и не описаны здесь. Независимо от его содержания, sys.implementation не будет изменяться ни во время выполнения интерпретатор, ни между версиями внедрения. (Однако он может изменяться между версиями на Python языках.) дополнительные сведения см. в разделе PEP 421.
Добавлено в версии 3.3.
Добавление новых требуемых атрибуты должно проходить через обычный процесс PEP. Дополнительные сведения см. в разделе PEP 421.
| Атрибут | Объяснение |
|---|---|
| bits_per_digit | количество битов, содержащихся в каждой цифре. В Python целые числа хранятся внутри по основанию 2**int_info.bits_per_digit |
| sizeof_digit | размер в байтах типа C, используемый для представления цифры |
Добавлено в версии 3.1.
Вызывает событие аудита cpython.run_interactivehook с объектом хук в качестве аргумента при вызове хук при запуске.
Добавлено в версии 3.4.
Интернированные строки не бессмертны; вы должны держать ссылку на возвращает значение intern() вокруг, чтобы извлечь выгоду из него.
Добавлено в версии 3.5.
Эти три переменные не всегда определяются; они устанавливаются, когда исключение не обрабатывается и интерпретатор печатает сообщение об ошибке и трейсбэк стека. Их назначение состоит в том, чтобы позволить интерактивному пользователю импортировать модуль отладчика и участвовать в посмертной отладке без необходимости повторного выполнения команды, вызвавшей ошибку. (Типичное использование import pdb; pdb.pm() для входа в посмертный отладчик; для получения дополнительной информации см. pdb модуль.)
Значение переменных совпадает с значением возвращает значения из exc_info() выше.
Целое число, дающее значение наибольшей точки код юникода, т.е. 1114111 ( 0x10FFFF в шестнадцатеричном формате).
Этот словарь сопоставляет имена модулей с уже загруженными модулями. Этим можно манипулировать, чтобы принудительно перезарядить модули и другие приемы. Однако замена словаря не обязательно будет работать так, как ожидалось, и удаление основных элементов из словаря может привести к сбою Python.
Программа может изменять этот список для своих целей. К строки следует добавлять только sys.path и байты; все остальные типы данных игнорируются во время импорта.
Для других систем значения являются:
| Система | platform значение |
|---|---|
| AIX | ‘aix’ |
| Linux | ‘linux’ |
| Windows | ‘win32’ |
| Windows/Cygwin | ‘cygwin’ |
| macOS | ‘darwin’ |
os.name имеет более грубую гранулярность. os.uname() предоставляет зависящую от системы информацию о версии.
Модуль platform обеспечивает детальную проверку идентификационных данных системы.
sys. setcheckinterval ( interval ) ¶
sys. setprofile ( profilefunc ) ¶
Raises an auditing event sys.setprofile with no arguments.
События имеют следующее значение:
Установить максимальную глубину стека Python интерпретатор limit. Этот предел не позволяет бесконечной рекурсии вызвать переполнение стека C и сбой Python.
Максимально возможный предел зависит от платформы. Пользователю может потребоваться установить более высокий предел, если у него есть программа, требующая глубокой рекурсии, и платформа, поддерживающая более высокий предел. Это следует делать с осторожностью, потому что слишком высокий предел может привести к краху.
Если новый предел слишком низок при текущей глубине рекурсии, создается RecursionError исключение.
Установить поток интервал переключения интерпретатор (в секундах). Этот значение с плавающей запятой определяет идеальную продолжительность «временных интервалов», выделенных для параллельного выполнения Python потоки. Обратите внимание, что фактические значение могут быть выше, особенно если используемый длительные внутренние функции или методы. Кроме того, какой поток становится запланированным в конце интервала, является решением операционной системы. У интерпретатор нет собственного планировщика.
Добавлено в версии 3.2.
Функция трассировки локальная должна возвращает ссылку на себя (или на другую функцию для дальнейшей трассировки в том область видимости) или None отключить трассировку в этом область видимости.
События имеют следующее значение:
Raises an auditing event sys.settrace with no arguments.
Детали реализации CPython: Функция settrace() предназначена только для реализации отладчиков, профилировщиков, инструментов покрытия и т.п. Его поведение является частью платформы реализации, а не частью определения языка, и, таким образом, может быть доступно не во всех реализациях Python.
Изменено в версии 3.7: ‘opcode’ добавлен тип события; f_trace_lines и f_trace_opcodes атрибуты добавлены к кадрам
Принимает два необязательных аргумента ключевой, которые являются вызываемыми и принимают итератор асинхронного генератора в качестве аргумента. Вызываемый firstiter вызывается при первой итерации асинхронного генератор. Этот finalizer будет вызван, когда будет собираться мусор асинхронного генератор.
Raises an auditing event sys.set_asyncgen_hooks_firstiter with no arguments.
Raises an auditing event sys.set_asyncgen_hooks_finalizer with no arguments.
Два события аудита возникают, поскольку базовый API состоит из двух вызовов, каждый из которых должен вызывать собственное событие.
Добавлено в версии 3.6: Дополнительные сведения см. в разделе PEP 525, а ссылочный пример метода finalizer см. в разделе реализация asyncio.Loop.shutdown_asyncgens в разделе Lib/asyncio/base_events.py
Эта функция была добавлена на временной основе (подробнее см. PEP 411)
Позволяет включить или отключить отслеживание происхождения корутина. Если этот параметр включен, cr_origin атрибут объектов coroutine будет содержать кортеж кортежей (имя файла, номер строки, имя функции), описывающий трейсбэк, в котором был создан объект coroutine, с последним вызовом. При отключении cr_origin будет None.
Для включения передайте depth значение больше нуля; это задает количество кадров, информация о которых будет записываться. Чтобы отключить, передайте depth set равным нулю.
Этот параметр потокоспецифичный.
Добавлено в версии 3.7.
Эта функция была добавлена на временной основе (подробнее см. PEP 411). Использовать его только для отладки.
Изменяет кодировку файловой системы по умолчанию и режим ошибок на «mbcs» и «replace» соответственно для обеспечения согласованности с версиями Python до версии 3.6.
Это эквивалентно определению переменной среды PYTHONLEGACYWINDOWSFSENCODING перед запуском Python.
Добавлено в версии 3.6: Дополнительные сведения см. в разделе PEP 529.
символ кодировки зависит от платформы. В платформах, отличных от Windows, используется кодировка локали (см. locale.getpreferredencoding() ).
В Windows для консольного устройства UTF-8 используемый. Устройства Non-символ, такие как дисковые файлы и пайпы используют системный locale кодировка (т.е. ANSI кодовая страница). Не консольные устройства символ, такие как NUL (т.е. где isatty() возвращает True ), используют значение кодовых страниц ввода и вывода консоли при запуске соответственно для stdin и stdout/stderr. По умолчанию используется системная locale кодировка, если процесс изначально не подключен к консоли.
Особое поведение консоли можно переопределить путем установки переменной среды PYTHONLEGACYWINDOWSSTDIO перед запуском Python. В этом случае кодовые страницы консоли используемый, как и для любого другого символ устройства.
Также можно используемый восстановить фактические файлы в известные рабочие файловые объекты, если они были перезаписаны поврежденным объектом. Однако предпочтительным способом является явное сохранение предыдущего потока перед его заменой и восстановление сохраненного объекта.
Именованный кортеж хранение информации о реализации потоков.
| Атрибут | Объяснение |
|---|---|
| name |




