sys python что такое

Системный модуль 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. В этом случае кодовые страницы консоли используемый, как и для любого другого символ устройства.

Также можно используемый восстановить фактические файлы в известные рабочие файловые объекты, если они были перезаписаны поврежденным объектом. Однако предпочтительным способом является явное сохранение предыдущего потока перед его заменой и восстановление сохраненного объекта.

Именованный кортеж хранение информации о реализации потоков.

Имя реализации потока:

Имя реализации блокировки:

Добавлено в версии 3.3.

sys. unraisablehook ( unraisable, / ) ¶

Обработайте невыполнимое исключение.

Вызывается, когда возникло исключение, но Python не может его обработать. Например, когда деструктор вызывает исключение или во время сбора мусора ( gc.collect() ).

Аргумент unraisable имеет следующие атрибуты:

sys.unraisablehook() можно переопределить, чтобы управлять обработкой неразрешимых исключений.

Хранение exc_value с помощью пользовательского хук может создать ссылочный цикл. Он должен быть очищен явным образом, чтобы прервать ссылочный цикл, если исключение больше не требуется.

Сохранение object с помощью пользовательского хук может восстановить его, если для него задан объект, который завершается. Избегайте сохранения object после завершения пользовательского хук, чтобы избежать восстановления объектов.

Добавлено в версии 3.8.

Версия C API для этого интерпретатор. Программисты могут найти это полезным при возникновении конфликтов версий отладки между Python и модулями расширения.

Изменено в версии 3.1: Добавлен именованный компонент атрибуты.

Это детальная реализация фреймворк предупреждений; не изменяйте этот значение. Дополнительные сведения о warnings предупреждений см. в модуле фреймворк.

Источник

Читайте также:  ломаются ювелирные украшения к чему
Информ портал о технике и не только
Атрибут Объяснение
name