sys

Модуль содержит переменные и функции, имеющие отношение к интерпретатору и его окружению.

sys.api_version

Целочисленное представление версии C API интерпретатора Python. Используется при работе с модулями расширений.

sys.argv

Список параметров командной строки, передаваемых программе. Элемент argv[0] хранит имя программы.

print sys.argv
['script.py']
sys.builtin_module_names

Кортеж с именами модулей, встроенных в исполняемый файл интерпретатора Python.

sys.byteorder

Порядок следования байтов, используемый аппаратной платформой: ‘little’ – обратный порядок следования байтов, ‘big’ – прямой.

sys.copyright

Строка с текстом, содержащим упоминание об авторских правах.

sys.__displayhook__

Оригинальное значение функции displayhook().

sys.dont_write_bytecode

Логический флаг, который определяет, должен ли интерпретатор Python создавать файлы с байт-кодом (с расширением .pyc или .pyo) при импортировании модулей. Начальное значение True, если интерпретатор не был вызван с ключом -B. Программа может изменять значение этой переменной посвоему усмотрению.

sys.dllhandle

Целочисленный идентификатор для Python DLL (используется в Windows).

sys.__excepthook__

Оригинальное значение функции excepthook().

sys.exec_prefix

Каталог, куда были установлены платформозависимые файлы Python.

sys.executable

Строка, содержащая имя выполняемого файла интерпретатора.

sys.flags

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

Список атрибутов

атрибут параметр командной строки
flags.debug -d
flags.py3k_warning -3
flags.division_warning -Q
flags.division_new -Qnew
flags.inspect -i
flags.interactive -i
flags.optimize -O или –OO
flags.dont_write_bytecode -B
flags.no_site -S
flags.ignore_environment -E
flags.tabcheck -t или -tt
flags.verbose -v
flags.unicode -U
sys.float_info

хранит информацию о внутреннем представлении чисел с плавающей точкой. Значения атрибутов этого объекта взяты из заголовочного файла float.h языка C.

атрибуты описание
float_info.epsilon Разность между 1.0 и ближайшим числом с плавающей точкой больше 1.0.
float_info.dig Количество десятичных знаков, которые могут быть представлены без изменений после округления.
float_info.mant_dig Количество цифр мантиссы в системе счисления по основанию, указанному в атрибуте float_info.radix.
float_info.max Максимально возможное число с плавающей точкой.
float_info.max_exp Максимальная величина экспоненты в системе счисления по основанию, указанному в атрибуте float_info.radix.
float_info.max_10_exp Максимальная величина экспоненты в системе счисления по основанию 10.
float_info.min Минимально возможное положительное число с плавающей точкой.
float_info.min_exp Минимальная величина экспоненты в системе счисления по основанию, указанному в атрибуте float_info.radix.
float_info.min_10_exp Минимальная величина экспоненты в системе счисления по основанию 10.
float_info.radix Основание системы счисления для показателя степени.
float_info.rounds Алгоритм округления (-1 – не определено, 0 – в сторону нуля, 1 – до ближайшего значения, 2 – в сторону положительной бесконечности, 3 – в сторону отрицательной бесконечности).
sys.hexversion

Целое число, в шестнадцатеричном представлении которого закодирована информация о номере версии, содержащемся в переменной sys.version_info. Значение этой переменной всегда гарантированно увеличивается с выходом новой версии интерпретатора.

sys.last_type

тип последнего исключения. Обратите внимание, что в многопоточных приложениях не гарантируется достоверность информации переменной, поэтому рекомендуется пользоваться функцией sys.exc_info().

sys.last_value

экземпляр последнего исключения. Обратите внимание, что в многопоточных приложениях не гарантируется достоверность информации переменной, поэтому рекомендуется пользоваться функцией sys.exc_info().

sys.last_traceback

объект с трассировочной информацией. Обратите внимание, что в многопоточных приложениях не гарантируется достоверность информации переменной, поэтому рекомендуется пользоваться функцией sys.exc_info().

sys.maxint

Максимально возможное значение целого числа (только в Python 2).

sys.maxsize

Максимально возможное целое число, поддерживаемое типом size_t языка C в системе. Это значение определяет максимально возможную длину строк, списков, словарей и других встроенных типов.

sys.maxunicode

Целое число, определяющее наибольший кодовый пункт Юникода, который может быть представлен. По умолчанию имеет значение 65 535 для 16-битной кодировки UCS-2. Если при сборке интерпретатор Python был настроен на использование кодировки UCS-4, это число будет больше.

sys.modules

Словарь, который отображает имена модулей в объекты модулей.

sys.path

Список строк, определяющих путь поиска модулей. Первый элемент списка всегда содержит путь к каталогу, в котором находился сценарий, использованный для запуска интерпретатора (если доступен).

sys.platform

Строка, идентифицирующая платформу, например ‘linux-i386’.

sys.prefix

Каталог, куда были установлены платформонезависимые файлы Python.

sys.ps1

текст основного приглашения к вводу интерпретатора. ‘>>> ‘. При назначении других значений для получения текста приглашения будут использоваться методы str() назначенных объектов.

sys.ps2

текст дополнительного приглашения к вводу интерпретатора. ‘... ‘. При назначении других значений для получения текста приглашения будут использоваться методы str() назначенных объектов.

sys.py3kwarning

В Python 2 этот флаг устанавливается в значение True, когда интерпретатор запускается с ключом -3.

sys.stdin

Объект файла, соответствующий потоку стандартного ввода. Переменная используется функциями raw_input() и input(). переменной можно назначить любые объекты, поддерживающие метод write(), принимающий единственный строковый аргумент.

sys.stdout

Объекты файла, соответствующий потоку стандартного вывода. Переменная используется инструкцией print для вывода значений аргументов и функциями raw_input() и input() – для вывода приглашения к вводу. переменной можно назначить любые объекты, поддерживающие метод write(), принимающий единственный строковый аргумент.

stdin, stdout, stderr

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

__stdin__, __stdout__, __stderr__

Переменные, содержащие значения stdin, stdout и stderr, полученные в момент запуска интерпретатора.

sys.tracebacklimit

Максимальное количество уровней трассировочной информации, которая выводится при появлении необработанного исключения. Значение по умолчанию 1000. Значение 0 подавляет вывод трассировочной информации, при этом выводятся только тип исключения и информация из него.

sys.version

Строка с номером версии.

sys.version_info

Информация о версии в виде кортежа (major, minor, micro, releaselevel, serial). Все значения являются целочисленными, за исключением releaselevel, которое является строкой ‘alpha’, ‘beta’, ‘candidate’ или ‘final’.

sys.warnoptions

Список аргументов параметра командной строки –W, полученного интерпретатором.

sys.winver

Номер версии, который обычно формируется из ключей реестра в системе Windows.

sys._clear_type_cache()

Очищает внутренний кэш типов. Чтобы оптимизировать поиск наиболее часто используемых методов, внутри интерпретатора имеется небольшой кэш на 1024 записи. Этот кэш позволяет ускорить повторные попытки поиска, особенно в программном коде, где используются классы с глубокой иерархией наследования. Обычно этот кэш очищать не требуется, но эта функция может пригодиться при решении некоторых проблем освобождения памяти, связанных с подсчетом ссылок. Например, когда метод в кэше удерживает ссылку на объект, который требуется удалить.

sys._current_frames()

Возвращает словарь, отображающий идентификаторы потоков выполнения на самые верхние кадры стека, для потоков, которые были активны в момент вызова функции. Эта информация может пригодиться при разработке инструментов отладки многопоточных приложений (то есть для поиска причин взаимоблокировок). Имейте в виду, что значения, возвра щаемые функцией, представляют собой всего лишь «мгновенный снимок» интерпретатора в момент вызова функции. К тому времени, когда функция вернет результаты, потоки могут уже выполняться в другом месте.

sys.displayhook([value])

Эта функция вызывается для вывода результатов выражений, когда интерпретатор выполняется в интерактивном режиме. По умолчанию она выводит значение repr(value) в поток стандартного вывода и сохраняет его в переменной __builtin__. Имеется возможность переопределять значение displayhook, чтобы при необходимости обеспечить иное поведение.

sys.excepthook(type, value, traceback)
Параметры:
  • type – класс исключения
  • value – значение, переданное инструкции raise
  • traceback – объект с трассировочной информацией

Эта функция вызывается при появлении необработанного исключения. По умолчанию она выводит в поток стандартного вывода сообщений об ошибках информацию об исключении и трассировочную информацию. Однако имеется возможность переопределить эту функцию и реализовать альтернативный способ реакции на необработанные исключения (что может оказаться полезным в специализированных приложениях, таких как отладчики или сценарии CGI).

sys.exc_clear()

Очищает всю информацию, связанную с последним исключением. При этом очищается только информация, имеющая отношение к вызывающему потоку выполнения.

sys.exc_info()

Возвращает кортеж (type, value, traceback) с информацией об исключении, обрабатываемом в текущий момент. В аргументе type передается тип исключения, в аргументе value – параметры инструкции raise, а в аргументе traceback – объект с трассировочной информацией о той точке в стеке вызовов, где возникло исключение. Если в текущий момент времени никакое исключение не обрабатывается, возвращает None.

sys.exit([n])

Завершает работу интерпретатора, возбуждая исключения SystemExit. В аргументе n передается целое число – код завершения. Значение 0 рассматри вается как признак нормального завершения (по умолчанию); ненулевые значения интерпретируются как признак ошибки. Если в аргументе n передать значение, не являющееся целым числом, оно будет выведено в поток sys.stderr, а завершение работы будет произведено с кодом 1.

sys.getcheckinterval()

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

sys.getdefaultencoding()

Возвращает кодировку, используемую по умолчанию для преобразований строк Юникода. Возвращаемое значение является строкой, такой как ‘ascii’ или ‘utf-8’. Установка кодировки по умолчанию производится модулем site.

sys.getdlopenflags()

Возвращает флаги, которые передаются функции dlopen(), написанной на языке C, во время загрузки модулей расширений в UNIX.

sys.getfilesystemencoding()

Возвращает кодировку символов, используемую операционной системой для отображения символов Юникода в именах файлов. В Windows возвращает ‘mbcs’, а в Macintosh OS X – ‘utf-8’. В UNIX кодировка зависит от региональных настроек, и функция будет возвращать значение параметра настройки CODESET. Может возвращать None, если в системе используется кодировка по умолчанию.

sys._getframe([depth])

Возвращает объект кадра стека вызовов. Если аргумент depth опущен или равен нулю, возвращается самый верхний кадр. В противном случае возвращается кадр, расположенный ниже текущего кадра стека на указанное число уровней. Например, вызов _getframe(1) вернет кадр стека вызывающей функции. При передаче в аргументе depth недопустимого значения возбуждает исключение ValueError.

sys.getprofile()

Возвращает функцию профилирования, установленную вызовом функции setprofile().

sys.getrecursionlimit()

Возвращает ограничение на количество рекурсивных вызовов функций.

sys.getrefcount(object)

Возвращает значение счетчика ссылок на объект object.

sys.getsizeof(object[, default])

Возвращает размер объекта object в байтах. Вычисления выполняются с помощью специального метода __sizeof__() указанного объекта. Если этот метод не определен, возбуждается исключение TypeError, если не было указано значение по умолчанию в аргументе default. Поскольку на реализацию методов __sizeof__() в объектах не накладывается никаких ограничений, то нет никакой гарантии, что возвращаемое значение функции будет точно соответствовать объему занимаемой памяти. Однако для встроенных типов, таких как списки или строки, функция возвращает корректное значение.

sys.gettrace()

Возвращает функцию трассировки, установленную функцией settrace().

sys.getwindowsversion()

Возвращает кортеж (major,minor,build,platform,text), описывающий версию используемой системы Windows. Поле major содержит основной номер версии. Например, значение 4 соответствует операционной системе Windows NT 4.0, а значение 5 – Windows 2000 и Windows XP. Поле minor содержит младший номер версии. Например, значение 0 соответствует операционной системе Windows 2000, 1 а значение 1 – Windows XP. Поле build содержит номер сборки. Поле platform – целое число с информацией о платформе и может принимать одно из типичных значений: 0 (Win32s в Windows 3.1), 1 (Windows 95, 98 или Me), 2 (Windows NT, 2000, XP) или 3 (Windows CE). Поле text содержит строку с дополнительной информацией, такой как “Service Pack 3”.

sys.setcheckinterval(n)

Устанавливает количество инструкций виртуальной машины Python, которые должен выполнить интерпретатор, прежде чем он проверит наступление периодического события, такого как сигнал или необходимость переключения контекста потока выполнения. По умолчанию устанавливается значение 10.

sys.setdefaultencoding(enc)

Устанавливает кодировку по умолчанию. В аргументе enc должна передаваться строка, такая как ‘ascii’ или ‘utf-8’. Эта функция определена только в модуле site. Может вызываться из пользовательских модулей sitecustomize.

sys.setdlopenflags(flags)

Устанавливает флаги, которые в дальнейшем будут передаваться функции dlopen(), написанной на языке C, которая используется для загрузки моду-лей расширений в UNIX. Эти флаги оказывают влияние на способ разрешения имен в библиотеках и в других модулях расширений. В аргументе flags передается битная маска, составленная из значений флагов, объединенных с помощью битовой операции ИЛИ, которые определены в модуле dl, например sys.setdlopenflags(dl.RTLD_NOW | dl.RTLD_GLOBAL).

sys.setprofile(pfunc)

Устанавливает функцию профилирования, которая может использоваться реализацией профилировщика исходных текстов.

sys.setrecursionlimit(n)

Устанавливает ограничение на количество рекурсивных вызовов функций. По умолчанию устанавливается значение 1000. Обратите внимание, что операционная система может накладывать свои ограничения на размер стека, поэтому установка слишком большого значения может вызывать аварийное завершение процесса интерпретатора Python с сообщением «Segmentation Fault» (ошибка сегментации) или «Access Violation» (нарушение прав доступа).

sys.settrace(tfunc)

Устанавливает функцию трассировки, которая может использоваться реализацией отладчика.