sys
— System-specific parameters and functions¶
Цей модуль надає доступ до деяких змінних, які використовуються або обслуговуються інтерпретатором, і до функцій, які сильно взаємодіють з інтерпретатором. Він завжди доступний.
-
sys.
abiflags
¶ У системах POSIX, де Python було створено зі стандартним сценарієм
configure
, він містить прапорці ABI, визначені PEP 3149.Змінено в версії 3.8: Прапорці за замовчуванням стали порожнім рядком (прапорець
m
для pymalloc видалено).Нове в версії 3.2.
-
sys.
addaudithook
(hook)¶ Додайте хук, що викликається, до списку активних хуків аудиту для поточного (суб)інтерпретатора.
Коли подія аудиту викликається через функцію
sys.audit()
, кожен хук буде викликано в тому порядку, в якому він був доданий, з назвою події та кортежем аргументів. Власні хуки, доданіPySys_AddAuditHook()
, викликаються першими, а потім хуки, додані в поточному (під)інтерпретаторі. Потім хуки можуть зареєструвати подію, створити виняток для переривання операції або повністю завершити процес.Виклик
sys.addaudithook()
сам викличе подію аудиту під назвоюsys.addaudithook
без аргументів. Якщо будь-які існуючі хуки викликають виняток, отриманий відRuntimeError
, новий хук не буде додано, а виняток придушено. Як наслідок, абоненти не можуть вважати, що їхній підхоплювач було додано, якщо вони не контролюють усі існуючі підхоплення.Перегляньте таблицю подій аудиту для всіх подій, викликаних CPython, і PEP 578 для обговорення оригінального дизайну.
Нове в версії 3.8.
Змінено в версії 3.8.1: Винятки, отримані від
Exception
, але неRuntimeError
більше не пригнічуються.CPython implementation detail: Коли трасування ввімкнено (див.
settrace()
), хуки Python відстежуються, лише якщо виклик має член__cantrace__
, якому встановлено справжнє значення. Інакше функції трасування пропустять підключення.
-
sys.
argv
¶ Список аргументів командного рядка, переданих до сценарію Python.
argv[0]
- це ім’я сценарію (це залежить від операційної системи, повний шлях чи ні). Якщо команда була виконана за допомогою параметра командного рядка-c
інтерпретатора,argv[0]
встановлюється на рядок'-c'
. Якщо ім’я сценарію не було передано інтерпретатору Python,argv[0]
буде порожнім рядком.Щоб перейти до стандартного введення або списку файлів, поданих у командному рядку, перегляньте модуль
fileinput
.Примітка
В Unix аргументи командного рядка передаються байтами з ОС. Python декодує їх за допомогою кодування файлової системи та обробника помилок «surrogateescape». Якщо вам потрібні оригінальні байти, ви можете отримати їх за допомогою
[os.fsencode(arg) for arg in sys.argv]
.
-
sys.
audit
(event, *args)¶ Викликайте подію аудиту та запускайте будь-які активні перехоплення аудиту. event — це рядок, що ідентифікує подію, а args може містити додаткові аргументи з додатковою інформацією про подію. Кількість і типи аргументів для даної події вважаються загальнодоступним і стабільним API і не повинні змінюватися між випусками.
Наприклад, одна подія аудиту має назву
os.chdir
. Ця подія має один аргумент під назвою шлях, який міститиме запитаний новий робочий каталог.sys.audit()
викличе існуючі хуки аудиту, передаючи назву події та аргументи, і повторно викличе перший виняток із будь-якого хука. Загалом, якщо виникає виняток, його не слід обробляти, а процес слід завершити якомога швидше. Це дозволяє реалізаціям гаків вирішувати, як реагувати на певні події: вони можуть просто зареєструвати подію або перервати операцію, викликавши виняток.Хуки додаються за допомогою функцій
sys.addaudithook()
абоPySys_AddAuditHook()
.Власним еквівалентом цієї функції є
PySys_Audit()
. За можливості бажано використовувати нативну функцію.Перегляньте таблицю подій аудиту для всіх подій, викликаних CPython.
Нове в версії 3.8.
-
sys.
base_exec_prefix
¶ Установіть під час запуску Python, перед запуском
site.py
, на те саме значення, що йexec_prefix
. Якщо не працює у віртуальному середовищі, значення залишаться незмінними; якщоsite.py
виявить, що використовується віртуальне середовище, значенняprefix
іexec_prefix
буде змінено, щоб вказувати на віртуальне середовище, тоді якbase_prefix
іbase_exec_prefix
залишиться вказівкою на базову інсталяцію Python (ту, з якої було створено віртуальне середовище).Нове в версії 3.3.
-
sys.
base_prefix
¶ Установіть під час запуску Python, перед запуском
site.py
, таке саме значення, якprefix
. Якщо не працює у віртуальному середовищі, значення залишаться незмінними; якщоsite.py
виявить, що використовується віртуальне середовище, значенняprefix
іexec_prefix
буде змінено, щоб вказувати на віртуальне середовище, тоді якbase_prefix
іbase_exec_prefix
залишиться вказівкою на базову інсталяцію Python (ту, з якої було створено віртуальне середовище).Нове в версії 3.3.
-
sys.
byteorder
¶ Індикатор рідного порядку байтів. Це матиме значення
'big'
на платформах з порядковим порядком старшого (спочатку найстарший байт) і'little'
на платформах з порядковим порядком (спочатку молодший байт).
-
sys.
builtin_module_names
¶ A tuple of strings giving the names of all modules that are compiled into this Python interpreter. (This information is not available in any other way —
modules.keys()
only lists the imported modules.)
-
sys.
call_tracing
(func, args)¶ Call
func(*args)
, while tracing is enabled. The tracing state is saved, and restored afterwards. This is intended to be called from a debugger from a checkpoint, to recursively debug some other code.
-
sys.
copyright
¶ Рядок, що містить авторські права, що стосуються інтерпретатора Python.
-
sys.
_clear_type_cache
()¶ Очистіть внутрішній кеш типів. Кеш типів використовується для прискорення пошуку атрибутів і методів. Використовуйте функцію тільки, щоб видалити непотрібні посилання під час налагодження витоку посилань.
Цю функцію слід використовувати лише для внутрішніх і спеціальних цілей.
-
sys.
_current_frames
()¶ Повертає словник, який зіставляє ідентифікатор кожного потоку з найвищим фреймом стека, який зараз активний у цьому потоці на момент виклику функції. Зауважте, що функції в модулі
traceback
можуть створювати стек викликів за допомогою такого кадру.Це найбільш корисно для усунення тупикових блокувань: ця функція не потребує взаємодії потоків, що заблоковані, і стеки викликів таких потоків заморожені, доки вони залишаються тупиковими. Кадр, повернутий для потоку без блокування, може не мати зв’язку з поточною активністю цього потоку до моменту, коли код виклику перевіряє кадр.
Цю функцію слід використовувати лише для внутрішніх і спеціальних цілей.
Викликає подію аудиту
sys._current_frames
без аргументів.
-
sys.
breakpointhook
()¶ Ця функція підключення викликається вбудованою
breakpoint()
. За замовчуванням він перекидає вас у налагоджувачpdb
, але його можна налаштувати на будь-яку іншу функцію, щоб ви могли вибрати, який налагоджувач використовувати.Сигнатура цієї функції залежить від того, що вона викликає. Наприклад, зв’язування за замовчуванням (наприклад,
pdb.set_trace()
) не очікує жодних аргументів, але ви можете прив’язати його до функції, яка очікує додаткових аргументів (позиційних та/або ключових). Вбудована функціяbreakpoint()
передає свої*args
і**kws
безпосередньо. Усе, що повертаєbreakpointhooks()
, повертається зbreakpoint()
.Стандартна реалізація спочатку звертається до змінної середовища
PYTHONBREAKPOINT
. Якщо для нього встановлено значення"0"
, тоді ця функція негайно повертається; тобто це безоперація. Якщо змінна середовища не встановлена або має значення порожнього рядка, викликаєтьсяpdb.set_trace()
. В іншому випадку ця змінна має називати функцію для запуску, використовуючи номенклатуру імпорту Python із пунктирною точкою, наприклад.package.subpackage.module.function
. У цьому випадкуpackage.subpackage.module
буде імпортовано, а отриманий модуль повинен мати виклик під назвоюfunction()
. Це виконується, передаючи*args
і**kws
, і все, що повертаєfunction()
,sys.breakpointhook()
повертає до вбудованого функціяbreakpoint()
.Зауважте, що якщо щось піде не так під час імпортування виклику, названого
PYTHONBREAKPOINT
, повідомляєтьсяRuntimeWarning
, а точка зупину ігнорується.Також зауважте, що якщо
sys.breakpointhook()
перевизначено програмно,PYTHONBREAKPOINT
не перевіряється.Нове в версії 3.7.
-
sys.
_debugmallocstats
()¶ Друк інформації низького рівня на stderr про стан розподілювача пам’яті CPython.
If Python is configured –with-pydebug, it also performs some expensive internal consistency checks.
Нове в версії 3.3.
CPython implementation detail: Ця функція є специфічною для CPython. Точний вихідний формат тут не визначений і може змінюватися.
-
sys.
dllhandle
¶ Ціле число, що визначає дескриптор DLL Python.
Availability: Windows.
-
sys.
displayhook
(value)¶ Якщо value не є
None
, ця функція друкуєrepr(value)
доsys.stdout
і зберігає значення уbuiltins._
. Якщоrepr(value)
не можна закодувати вsys.stdout.encoding
зsys.stdout.errors
обробником помилок (який, ймовірно,'strict'
), закодуйте його уsys.stdout.encoding
з'backslashreplace'
обробником помилок.sys.displayhook
викликається на основі результату оцінки expression, введеного в інтерактивному сеансі Python. Відображення цих значень можна налаштувати, призначивши іншу функцію з одним аргументомsys.displayhook
.Псевдокод:
def displayhook(value): if value is None: return # Set '_' to None to avoid recursion builtins._ = None text = repr(value) try: sys.stdout.write(text) except UnicodeEncodeError: bytes = text.encode(sys.stdout.encoding, 'backslashreplace') if hasattr(sys.stdout, 'buffer'): sys.stdout.buffer.write(bytes) else: text = bytes.decode(sys.stdout.encoding, 'strict') sys.stdout.write(text) sys.stdout.write("\n") builtins._ = value
Змінено в версії 3.2: Використовуйте обробник помилок
'backslashreplace'
дляUnicodeEncodeError
.
-
sys.
dont_write_bytecode
¶ Якщо це правда, Python не намагатиметься записати файли
.pyc
під час імпорту вихідних модулів. Спочатку це значення встановлено наTrue
абоFalse
залежно від параметра командного рядка-B
та змінної середовищаPYTHONDONTWRITEBYTECODE
, але ви можете встановити його самостійно для керування байт-кодом генерація файлів.
-
sys.
pycache_prefix
¶ If this is set (not
None
), Python will write bytecode-cache.pyc
files to (and read them from) a parallel directory tree rooted at this directory, rather than from__pycache__
directories in the source code tree. Any__pycache__
directories in the source code tree will be ignored and new .pyc files written within the pycache prefix. Thus if you usecompileall
as a pre-build step, you must ensure you run it with the same pycache prefix (if any) that you will use at runtime.Відносний шлях інтерпретується відносно поточного робочого каталогу.
Це значення спочатку встановлюється на основі значення параметра командного рядка
-X
pycache_prefix=PATH
або змінної середовищаPYTHONPYCACHEPREFIX
(командний рядок має пріоритет). Якщо жоден не встановлений, цеNone
.Нове в версії 3.8.
-
sys.
excepthook
(type, value, traceback)¶ Ця функція друкує задану трасування та винятки для
sys.stderr
.When an exception is raised and uncaught, the interpreter calls
sys.excepthook
with three arguments, the exception class, exception instance, and a traceback object. In an interactive session this happens just before control is returned to the prompt; in a Python program this happens just before the program exits. The handling of such top-level exceptions can be customized by assigning another three-argument function tosys.excepthook
.Викликати подію аудиту
sys.excepthook
з аргументамиhook
,type
,value
,traceback
, коли виникає неперехоплена виняткова ситуація. Якщо хук не встановлено,hook
може мати значенняNone
. Якщо будь-який хук викликає виняток, отриманий відRuntimeError
, виклик хука буде придушено. Інакше буде повідомлено, що виняток перевірки неможливий, і буде викликаноsys.excepthook
.Дивись також
Функція
sys.unraisablehook()
обробляє винятки, які не можна викликати, а функціяthreading.excepthook()
обробляє винятки, викликаніthreading.Thread.run()
.
-
sys.
__breakpointhook__
¶ -
sys.
__displayhook__
¶ -
sys.
__excepthook__
¶ -
sys.
__unraisablehook__
¶ Ці об’єкти містять вихідні значення
breakpointhook
,displayhook
,excepthook
іunraisablehook
на початку програми. Вони зберігаються, щоб можна було відновитиbreakpointhook
,displayhook
іexcepthook
,unraisablehook
, якщо вони будуть замінені несправними або альтернативними об’єктами.Нове в версії 3.7: __breakpointhook__
Нове в версії 3.8: __unraisablehook__
-
sys.
exc_info
()¶ This function returns a tuple of three values that give information about the exception that is currently being handled. The information returned is specific both to the current thread and to the current stack frame. If the current stack frame is not handling an exception, the information is taken from the calling stack frame, or its caller, and so on until a stack frame is found that is handling an exception. Here, «handling an exception» is defined as «executing an except clause.» For any stack frame, only information about the exception being currently handled is accessible.
If no exception is being handled anywhere on the stack, a tuple containing three
None
values is returned. Otherwise, the values returned are(type, value, traceback)
. Their meaning is: type gets the type of the exception being handled (a subclass ofBaseException
); value gets the exception instance (an instance of the exception type); traceback gets a traceback object which encapsulates the call stack at the point where the exception originally occurred.
-
sys.
exec_prefix
¶ Рядок, що містить префікс каталогу сайту, де встановлено залежні від платформи файли Python; за замовчуванням це також
'/usr/local'
. Це можна встановити під час збирання за допомогою аргументу--exec-prefix
сценарію configure. Зокрема, усі файли конфігурації (наприклад, файл заголовкаpyconfig.h
) встановлено в каталозіexec_prefix/lib/pythonX.Y/config
, а модулі спільної бібліотеки встановлено в: файл: {exec_prefix}/lib/python{X.Y}/lib-dynload, де X.Y — це номер версії Python, наприклад3.2
.Примітка
Якщо діє віртуальне середовище, це значення буде змінено у
site.py
, щоб вказувати на віртуальне середовище. Значення для встановлення Python усе ще буде доступним черезbase_exec_prefix
.
-
sys.
executable
¶ Рядок, що вказує абсолютний шлях до виконуваного двійкового файлу для інтерпретатора Python у системах, де це має сенс. Якщо Python не може отримати справжній шлях до свого виконуваного файлу,
sys.executable
буде порожнім рядком абоNone
.
-
sys.
exit
([arg])¶ Викликати виняток
SystemExit
, сигналізуючи про намір вийти з інтерпретатора.Необов’язковий аргумент arg може бути цілим числом, що дає статус виходу (за замовчуванням нуль), або іншим типом об’єкта. Якщо це ціле число, нуль вважається «успішним завершенням», а будь-яке ненульове значення вважається «ненормальним завершенням» оболонками тощо. Більшість систем вимагають, щоб він знаходився в діапазоні 0–127, і в іншому випадку дають невизначені результати. У деяких системах є угода про призначення конкретних значень конкретним кодам виходу, але вони, як правило, недостатньо розроблені; Програми Unix зазвичай використовують 2 для синтаксичних помилок командного рядка та 1 для всіх інших видів помилок. Якщо передається інший тип об’єкта,
None
еквівалентно передачі нуля, а будь-який інший об’єкт друкується вstderr
і призводить до коду виходу 1. Зокрема,sys.exit( "повідомлення про помилку")
— це швидкий спосіб вийти з програми, коли виникає помилка.Оскільки
exit()
зрештою «тільки» викликає виняток, він вийде з процесу лише під час виклику з основного потоку, і виняток не перехоплюється. Дії очищення, визначені пунктами finally операторівtry
, виконуються, і можна перехопити спробу виходу на зовнішньому рівні.Змінено в версії 3.6: Якщо під час очищення виникає помилка після того, як інтерпретатор Python переловив
SystemExit
(наприклад, помилка очищення буферизованих даних у стандартних потоках), статус виходу змінюється на 120.
-
sys.
flags
¶ named tuple flags показує статус прапорів командного рядка. Атрибути доступні лише для читання.
атрибут
flag
debug
interactive
isolated
optimize
no_user_site
no_site
ignore_environment
verbose
bytes_warning
quiet
hash_randomization
dev_mode
utf8_mode
int_max_str_digits
-X int_max_str_digits
(integer string conversion length limitation)Змінено в версії 3.2: Додано атрибут
quiet
для нового прапора-q
.Нове в версії 3.2.3: Атрибут
hash_randomization
.Змінено в версії 3.3: Видалено застарілий атрибут
division_warning
.Змінено в версії 3.4: Додано атрибут
isolated
для прапора-I
isolated
.Змінено в версії 3.7: Додано атрибут
dev_mode
для нового режиму розробки Python і атрибутutf8_mode
для нового прапора-X
utf8
.Змінено в версії 3.9.14: Added the
int_max_str_digits
attribute.
-
sys.
float_info
¶ named tuple, що містить інформацію про тип float. Він містить інформацію низького рівня про точність і внутрішнє представлення. Значення відповідають різним константам із плаваючою комою, визначеним у стандартному файлі заголовків
float.h
для мови програмування «C»; подробиці див. у розділі 5.2.4.2.2 стандарту ISO/IEC C [C99], «Характеристики плаваючих типів» 1999 року.атрибут
макрос float.h
пояснення
epsilon
DBL_EPSILON
difference between 1.0 and the least value greater than 1.0 that is representable as a float
Дивіться також
math.ulp()
.dig
DBL_DIG
maximum number of decimal digits that can be faithfully represented in a float; see below
mant_dig
DBL_MANT_DIG
float precision: the number of base-
radix
digits in the significand of a floatDBL_MAX
maximum representable positive finite float
max_exp
DBL_MAX_EXP
maximum integer e such that
radix**(e-1)
is a representable finite floatmax_10_exp
DBL_MAX_10_EXP
maximum integer e such that
10**e
is in the range of representable finite floatsDBL_MIN
minimum representable positive normalized float
Використовуйте
math.ulp(0.0)
, щоб отримати найменше додатне денормалізоване число з плаваючою точкою, яке можна представити.min_exp
DBL_MIN_EXP
minimum integer e such that
radix**(e-1)
is a normalized floatmin_10_exp
DBL_MIN_10_EXP
minimum integer e such that
10**e
is a normalized floatradix
FLT_RADIX
radix of exponent representation
rounds
FLT_ROUNDS
integer constant representing the rounding mode used for arithmetic operations. This reflects the value of the system FLT_ROUNDS macro at interpreter startup time. See section 5.2.4.2.2 of the C99 standard for an explanation of the possible values and their meanings.
The attribute
sys.float_info.dig
needs further explanation. Ifs
is any string representing a decimal number with at mostsys.float_info.dig
significant digits, then convertings
to a float and back again will recover a string representing the same decimal value:>>> 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'
-
sys.
float_repr_style
¶ Рядок, що вказує, як функція
repr()
поводиться для чисел з плаваючою точкою. Якщо рядок має значення'short
, тоді для кінцевого числаx
,repr(x)
має на меті створити короткий рядок із властивістюfloat(repr(x)) == x
. Це звичайна поведінка в Python 3.1 і пізніших версіях. В іншому випадкуfloat_repr_style
має значення'legacy'
, аrepr(x)
поводиться так само, як і у версіях Python до 3.1.Нове в версії 3.1.
-
sys.
getallocatedblocks
()¶ Return the number of memory blocks currently allocated by the interpreter, regardless of their size. This function is mainly useful for tracking and debugging memory leaks. Because of the interpreter’s internal caches, the result can vary from call to call; you may have to call
_clear_type_cache()
andgc.collect()
to get more predictable results.If a Python build or implementation cannot reasonably compute this information,
getallocatedblocks()
is allowed to return 0 instead.Нове в версії 3.4.
-
sys.
getandroidapilevel
()¶ Return the build time API version of Android as an integer.
Availability: Android.
Нове в версії 3.7.
-
sys.
getdefaultencoding
()¶ Повертає назву поточного стандартного кодування рядка, яке використовується реалізацією Unicode.
-
sys.
getdlopenflags
()¶ Return the current value of the flags that are used for
dlopen()
calls. Symbolic names for the flag values can be found in theos
module (RTLD_xxx
constants, e.g.os.RTLD_LAZY
).Availability: Unix.
-
sys.
getfilesystemencoding
()¶ Return the name of the encoding used to convert between Unicode filenames and bytes filenames. For best compatibility, str should be used for filenames in all cases, although representing filenames as bytes is also supported. Functions accepting or returning filenames should support either str or bytes and internally convert to the system’s preferred representation.
This encoding is always ASCII-compatible.
os.fsencode()
іos.fsdecode()
слід використовувати, щоб переконатися, що використовується правильне кодування та режим помилок.In the UTF-8 mode, the encoding is
utf-8
on any platform.On macOS, the encoding is
'utf-8'
.On Unix, the encoding is the locale encoding.
On Windows, the encoding may be
'utf-8'
or'mbcs'
, depending on user configuration.On Android, the encoding is
'utf-8'
.On VxWorks, the encoding is
'utf-8'
.
Змінено в версії 3.2: Результат
getfilesystemencoding()
більше не може бутиNone
.Змінено в версії 3.6: Windows більше не гарантовано повертатиме
'mbcs'
. Дивіться PEP 529 і_enablelegacywindowsfsencoding()
для отримання додаткової інформації.Змінено в версії 3.7: Return „utf-8“ in the UTF-8 mode.
-
sys.
getfilesystemencodeerrors
()¶ Return the name of the error mode used to convert between Unicode filenames and bytes filenames. The encoding name is returned from
getfilesystemencoding()
.os.fsencode()
іos.fsdecode()
слід використовувати, щоб переконатися, що використовується правильне кодування та режим помилок.Нове в версії 3.6.
-
sys.
get_int_max_str_digits
()¶ Returns the current value for the integer string conversion length limitation. See also
set_int_max_str_digits()
.Нове в версії 3.9.14.
-
sys.
getrefcount
(object)¶ Повертає кількість посилань на об’єкт. Лічильник, який повертається, зазвичай на одиницю більший, ніж ви могли б очікувати, оскільки він включає (тимчасове) посилання як аргумент для
getrefcount()
.
-
sys.
getrecursionlimit
()¶ Повертає поточне значення обмеження рекурсії, максимальну глибину стека інтерпретатора Python. Це обмеження запобігає нескінченній рекурсії від переповнення стека C і збою Python. Його можна встановити за допомогою
setrecursionlimit()
.
-
sys.
getsizeof
(object[, default])¶ Повертає розмір об’єкта в байтах. Об’єктом може бути будь-який тип об’єкта. Усі вбудовані об’єкти повертатимуть правильні результати, але це не обов’язково стосується сторонніх розширень, оскільки це залежить від реалізації.
Враховується лише споживання пам’яті, безпосередньо пов’язане з об’єктом, а не споживання пам’яті об’єктами, на які він посилається.
Якщо задано, default буде повернуто, якщо об’єкт не надає засобів для отримання розміру. Інакше буде викликано
TypeError
.getsizeof()
викликає метод об’єкта__sizeof__
і додає додаткові накладні витрати на збирач сміття, якщо об’єктом керує збирач сміття.See recursive sizeof recipe for an example of using
getsizeof()
recursively to find the size of containers and all their contents.
-
sys.
getswitchinterval
()¶ Повертає інтерпретатору «інтервал перемикання потоків»; див.
setswitchinterval()
.Нове в версії 3.2.
-
sys.
_getframe
([depth])¶ Повернути об’єкт кадру зі стеку викликів. Якщо задано необов’язкове ціле число depth, поверніть об’єкт фрейму, який багато викликає, нижче верхньої частини стека. Якщо це глибше, ніж стек викликів, виникає
ValueError
. За замовчуванням для depth дорівнює нулю, повертаючи кадр у верхній частині стека викликів.Raises an auditing event
sys._getframe
with no arguments.CPython implementation detail: Цю функцію слід використовувати лише для внутрішніх і спеціальних цілей. Не гарантовано його існування у всіх реалізаціях Python.
-
sys.
getprofile
()¶ Отримайте функцію профайлера, встановлену
setprofile()
.
-
sys.
gettrace
()¶ Отримайте функцію трасування, встановлену
settrace()
.CPython implementation detail: Функція
gettrace()
призначена лише для реалізації налагоджувачів, профайлерів, інструментів покриття тощо. Його поведінка є частиною платформи реалізації, а не частиною визначення мови, і тому може бути недоступною в усіх реалізаціях Python.
-
sys.
getwindowsversion
()¶ Повертає іменований кортеж, що описує поточну запущену версію Windows. Іменовані елементи: major, minor, build, platform, service_pack, service_pack_minor, service_pack_major, suite_mask, product_type і platform_version. service_pack містить рядок, platform_version — 3-кортеж, а всі інші значення — цілі числа. До компонентів також можна отримати доступ за іменем, тому
sys.getwindowsversion()[0]
еквівалентноsys.getwindowsversion().major
. Для сумісності з попередніми версіями лише перші 5 елементів можна отримати за допомогою індексування.platform will be
2 (VER_PLATFORM_WIN32_NT)
.product_type може бути одним із таких значень:
Постійний
Значення
1 (VER_NT_WORKSTATION)
Система являє собою робочу станцію.
2 (VER_NT_DOMAIN_CONTROLLER)
Система є контролером домену.
3 (VER_NT_SERVER)
Система є сервером, але не контролером домену.
This function wraps the Win32
GetVersionEx()
function; see the Microsoft documentation onOSVERSIONINFOEX()
for more information about these fields.platform_version повертає основну версію, проміжну версію та номер збірки поточної операційної системи, а не версію, яка емулюється для процесу. Він призначений для використання в журналі, а не для виявлення функцій.
Примітка
platform_version отримує версію з kernel32.dll, версія якої може відрізнятися від версії ОС. Будь ласка, використовуйте модуль
platform
для отримання точної версії ОС.Availability: Windows.
Змінено в версії 3.2: Змінено на іменований кортеж і додано service_pack_minor, service_pack_major, suite_mask і product_type.
Змінено в версії 3.6: Додано версію_платформи
-
sys.
get_asyncgen_hooks
()¶ Returns an asyncgen_hooks object, which is similar to a
namedtuple
of the form (firstiter, finalizer), where firstiter and finalizer are expected to be eitherNone
or functions which take an asynchronous generator iterator as an argument, and are used to schedule finalization of an asynchronous generator by an event loop.Нове в версії 3.6: Дивіться PEP 525 для більш детальної інформації.
Примітка
Цю функцію додано тимчасово (докладніше див. PEP 411).
-
sys.
get_coroutine_origin_tracking_depth
()¶ Отримати поточну глибину відстеження джерела співпрограми, встановлену
set_coroutine_origin_tracking_depth()
.Нове в версії 3.7.
Примітка
Цю функцію додано на тимчасовій основі (докладніше див. PEP 411). Використовуйте її лише для налагодження.
-
sys.
hash_info
¶ named tuple, що надає параметри реалізації числового хешу. Докладніше про хешування числових типів див. Хешування числових типів.
атрибут
пояснення
width
width in bits used for hash values
modulus
prime modulus P used for numeric hash scheme
inf
hash value returned for a positive infinity
nan
hash value returned for a nan
imag
multiplier used for the imaginary part of a complex number
algorithm
name of the algorithm for hashing of str, bytes, and memoryview
hash_bits
internal output size of the hash algorithm
seed_bits
size of the seed key of the hash algorithm
Нове в версії 3.2.
Змінено в версії 3.4: Додано algorithm, hash_bits і seed_bits
-
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()
. named tuplesys.version_info
можна використовувати для більш зручного для людини кодування тієї самої інформації.Більш детальну інформацію про
hexversion
можна знайти на Керування версіями API та ABI.
-
sys.
implementation
¶ Об’єкт, що містить інформацію про реалізацію поточного інтерпретатора Python. Наступні атрибути повинні існувати в усіх реалізаціях Python.
ім’я – це ідентифікатор реалізації, напр.
'cpython'
. Фактичний рядок визначається реалізацією Python, але він гарантовано буде написаний у нижньому регістрі.version — це іменований кортеж у тому самому форматі, що й
sys.version_info
. Він представляє версію реалізації Python. Це має відмінне значення від конкретної версії мови Python, якій відповідає поточний інтерпретатор, який представляєsys.version_info
. Наприклад, для PyPy 1.8sys.implementation.version
може бутиsys.version_info(1, 8, 0, 'final', 0)
, тоді якsys.version_info
будеsys.version_info(2, 7, 2, 'final', 0)
. Для CPython вони однакові, оскільки це еталонна реалізація.hexversion — це версія реалізації в шістнадцятковому форматі, наприклад
sys.hexversion
.cache_tag — це тег, який використовується механізмом імпорту в назвах файлів кешованих модулів. Відповідно до домовленості, це буде складене ім’я реалізації та версія, наприклад
'cpython-33
. Однак реалізація Python може використовувати інше значення, якщо це доречно. Якщоcache_tag
має значенняNone
, це вказує на те, що кешування модуля має бути вимкнено.sys.implementation
може містити додаткові атрибути, характерні для реалізації Python. Ці нестандартні атрибути мають починатися з підкреслення та тут не описані. Незалежно від його вмісту,sys.implementation
не змінюватиметься ні під час роботи інтерпретатора, ні між версіями реалізації. (Однак він може змінюватися між версіями мови Python.) Додаткову інформацію див. PEP 421.Нове в версії 3.3.
Примітка
Додавання нових необхідних атрибутів має проходити через звичайний процес PEP. Перегляньте PEP 421 для отримання додаткової інформації.
-
sys.
int_info
¶ named tuple, який містить інформацію про внутрішнє представлення цілих чисел у Python. Атрибути доступні лише для читання.
Attribute
Explanation
bits_per_digit
number of bits held in each digit. Python integers are stored internally in base
2**int_info.bits_per_digit
sizeof_digit
size in bytes of the C type used to represent a digit
default_max_str_digits
default value for
sys.get_int_max_str_digits()
when it is not otherwise explicitly configured.str_digits_check_threshold
minimum non-zero value for
sys.set_int_max_str_digits()
,PYTHONINTMAXSTRDIGITS
, or-X int_max_str_digits
.Нове в версії 3.1.
Змінено в версії 3.9.14: Added
default_max_str_digits
andstr_digits_check_threshold
.
-
sys.
__interactivehook__
¶ Якщо цей атрибут існує, його значення викликається автоматично (без аргументів), коли інтерпретатор запускається в інтерактивному режимі. Це робиться після того, як файл
PYTHONSTARTUP
буде прочитано, щоб ви могли встановити цей хук там. Модульsite
встановлює цей.Викликає подію аудиту
cpython.run_interactivehook
з об’єктом підхоплення як аргумент, коли підхоплення викликається під час запуску.Нове в версії 3.4.
-
sys.
intern
(string)¶ Введіть рядок у таблицю «інтернованих» рядків і поверніть інтернований рядок, який є самим рядком або копією. Інтернування рядків корисне для підвищення продуктивності пошуку в словнику — якщо ключі в словнику інтерновані, а ключ пошуку інтернований, порівняння ключів (після хешування) можна виконувати за допомогою порівняння вказівників замість порівняння рядків. Зазвичай імена, які використовуються в програмах Python, автоматично інтернуються, а словники, які використовуються для зберігання атрибутів модуля, класу чи екземпляра, мають інтерновані ключі.
Interned strings are not immortal; you must keep a reference to the return value of
intern()
around to benefit from it.
-
sys.
is_finalizing
()¶ Return
True
if the Python interpreter is shutting down,False
otherwise.Нове в версії 3.5.
-
sys.
last_type
¶ -
sys.
last_value
¶ -
sys.
last_traceback
¶ These three variables are not always defined; they are set when an exception is not handled and the interpreter prints an error message and a stack traceback. Their intended use is to allow an interactive user to import a debugger module and engage in post-mortem debugging without having to re-execute the command that caused the error. (Typical use is
import pdb; pdb.pm()
to enter the post-mortem debugger; seepdb
module for more information.)The meaning of the variables is the same as that of the return values from
exc_info()
above.
-
sys.
maxsize
¶ Ціле число, яке дає максимальне значення, яке може приймати змінна типу
Py_ssize_t
. Зазвичай це2**31 - 1
на 32-розрядній платформі та2**63 - 1
на 64-розрядній платформі.
-
sys.
maxunicode
¶ Ціле число, яке вказує значення найбільшої кодової точки Юнікоду, наприклад
1114111
(0x10FFFF
у шістнадцятковій системі).Змінено в версії 3.3: До PEP 393,
sys.maxunicode
використовувався або0xFFFF
, або0x10FFFF
, залежно від параметра конфігурації, який вказував, чи зберігаються символи Unicode як UCS-2 або UCS- 4.
-
sys.
meta_path
¶ A list of meta path finder objects that have their
find_spec()
methods called to see if one of the objects can find the module to be imported. Thefind_spec()
method is called with at least the absolute name of the module being imported. If the module to be imported is contained in a package, then the parent package’s__path__
attribute is passed in as a second argument. The method returns a module spec, orNone
if the module cannot be found.Дивись також
importlib.abc.MetaPathFinder
Абстрактний базовий клас, що визначає інтерфейс об’єктів пошуку на
meta_path
.importlib.machinery.ModuleSpec
Конкретний клас, який
find_spec()
має повертати екземпляри.
Змінено в версії 3.4: Module specs were introduced in Python 3.4, by PEP 451. Earlier versions of Python looked for a method called
find_module()
. This is still called as a fallback if ameta_path
entry doesn’t have afind_spec()
method.
-
sys.
modules
¶ This is a dictionary that maps module names to modules which have already been loaded. This can be manipulated to force reloading of modules and other tricks. However, replacing the dictionary will not necessarily work as expected and deleting essential items from the dictionary may cause Python to fail.
-
sys.
path
¶ Список рядків, який визначає шлях пошуку для модулів. Ініціалізується зі змінної середовища
PYTHONPATH
, плюс значення за умовчанням, що залежить від встановлення.As initialized upon program startup, the first item of this list,
path[0]
, is the directory containing the script that was used to invoke the Python interpreter. If the script directory is not available (e.g. if the interpreter is invoked interactively or if the script is read from standard input),path[0]
is the empty string, which directs Python to search modules in the current directory first. Notice that the script directory is inserted before the entries inserted as a result ofPYTHONPATH
.A program is free to modify this list for its own purposes. Only strings and bytes should be added to
sys.path
; all other data types are ignored during import.
-
sys.
path_hooks
¶ Список викликів, які приймають аргумент path, щоб спробувати створити finder для шляху. Якщо засіб пошуку можна створити, його має повернути виклик, інакше викликається
ImportError
.Спочатку вказано в PEP 302.
-
sys.
path_importer_cache
¶ Словник, що діє як кеш для об’єктів finder. Ключі – це шляхи, які були передані до
sys.path_hooks
, а значення – це знайдені шукачі. Якщо шлях є дійсним шляхом у файловій системі, але вsys.path_hooks
не знайдено засобу пошуку, тоді зберігається значення «Немає».Спочатку вказано в PEP 302.
Змінено в версії 3.3:
None
is stored instead ofimp.NullImporter
when no finder is found.
-
sys.
platform
¶ This string contains a platform identifier that can be used to append platform-specific components to
sys.path
, for instance.For Unix systems, except on Linux and AIX, this is the lowercased OS name as returned by
uname -s
with the first part of the version as returned byuname -r
appended, e.g.'sunos5'
or'freebsd8'
, at the time when Python was built. Unless you want to test for a specific system version, it is therefore recommended to use the following idiom:if sys.platform.startswith('freebsd'): # FreeBSD-specific code here... elif sys.platform.startswith('linux'): # Linux-specific code here... elif sys.platform.startswith('aix'): # AIX-specific code here...
For other systems, the values are:
система
значення
платформи
AIX
'aix'
Linux
'linux'
вікна
'win32'
Windows/Cygwin
'cygwin'
macOS
''дарвін'
Змінено в версії 3.3: On Linux,
sys.platform
doesn’t contain the major version anymore. It is always'linux'
, instead of'linux2'
or'linux3'
. Since older Python versions include the version number, it is recommended to always use thestartswith
idiom presented above.Змінено в версії 3.8: On AIX,
sys.platform
doesn’t contain the major version anymore. It is always'aix'
, instead of'aix5'
or'aix7'
. Since older Python versions include the version number, it is recommended to always use thestartswith
idiom presented above.Дивись також
os.name
has a coarser granularity.os.uname()
gives system-dependent version information.Модуль
platform
забезпечує детальну перевірку ідентичності системи.
-
sys.
platlibdir
¶ Назва каталогу бібліотеки для конкретної платформи. Використовується для побудови шляху стандартної бібліотеки та шляхів встановлених модулів розширення.
На більшості платформ він дорівнює
"lib"
. У Fedora та SuSE він дорівнює"lib64"
на 64-розрядних платформах, що дає такі шляхиsys.path
(деX.Y
єmajor.minor
Python версія):/usr/lib64/pythonX.Y/
: Стандартна бібліотека (наприклад,os.py
модуляos
)/usr/lib64/pythonX.Y/lib-dynload/
: модулі розширення C стандартної бібліотеки (наприклад, модульerrno
, точна назва файлу залежить від платформи)/usr/lib/pythonX.Y/site-packages/
(завжди використовуйтеlib
, а неsys.platlibdir
): сторонні модулі/usr/lib64/pythonX.Y/site-packages/
: модулі розширення C пакетів сторонніх розробників
Нове в версії 3.9.
-
sys.
prefix
¶ A string giving the site-specific directory prefix where the platform independent Python files are installed; on Unix, the default is
'/usr/local'
. This can be set at build time with the--prefix
argument to the configure script. See Шляхи встановлення for derived paths.Примітка
Якщо діє віртуальне середовище, це значення буде змінено у
site.py
, щоб вказувати на віртуальне середовище. Значення для встановлення Python усе ще буде доступним черезbase_prefix
.
-
sys.
ps1
¶ -
sys.
ps2
¶ Рядки, що вказують основну та додаткову підказки інтерпретатора. Вони визначаються, лише якщо інтерпретатор перебуває в інтерактивному режимі. Їх початковими значеннями в цьому випадку є
'>>> '
і'... '
. Якщо будь-якій змінній присвоєно нерядковий об’єкт, йогоstr()
переоцінюється щоразу, коли інтерпретатор готується прочитати нову інтерактивну команду; це можна використовувати для реалізації динамічного підказки.
-
sys.
setdlopenflags
(n)¶ Set the flags used by the interpreter for
dlopen()
calls, such as when the interpreter loads extension modules. Among other things, this will enable a lazy resolving of symbols when importing a module, if called assys.setdlopenflags(0)
. To share symbols across extension modules, call assys.setdlopenflags(os.RTLD_GLOBAL)
. Symbolic names for the flag values can be found in theos
module (RTLD_xxx
constants, e.g.os.RTLD_LAZY
).Availability: Unix.
-
sys.
set_int_max_str_digits
(n)¶ Set the integer string conversion length limitation used by this interpreter. See also
get_int_max_str_digits()
.Нове в версії 3.9.14.
-
sys.
setprofile
(profilefunc)¶ Встановіть функцію профілю системи, яка дозволяє реалізувати профайлер вихідного коду Python у Python. Перегляньте розділ Профайлери Python для отримання додаткової інформації про профайлер Python. Функція профілю системи викликається подібно до функції трасування системи (див.
settrace()
), але вона викликається з різними подіями, наприклад, вона не викликається для кожного виконаного рядка коду (тільки під час виклику та повернення, але подія повернення повідомляється, навіть якщо встановлено виняток). Ця функція залежить від потоку, але профайлер не може дізнатися про перемикання контексту між потоками, тому немає сенсу використовувати це за наявності кількох потоків. Крім того, його повертане значення не використовується, тому воно може просто повернутиNone
. Помилка у функції профілю призведе до самої неналаштування.Функції профілю повинні мати три аргументи: frame, event і arg. frame — поточний кадр стека. подія — це рядок:
'call'
,'return'
,'c_call'
,'c_return'
або'c_exception'
. arg залежить від типу події.Викликає подію аудиту
sys.setprofile
без аргументів.Події мають таке значення:
'дзвінок'
Викликається функція (або вводиться інший блок коду). Функція профілю викликається; arg — це
None
.'повернення'
Функція (або інший блок коду) збирається повернутися. Функція профілю викликається; arg — це значення, яке буде повернуто, або
None
, якщо подія спричинена винятковою ситуацією.'c_call'
Ось-ось буде викликана функція C. Це може бути функція розширення або вбудована. arg — об’єкт функції C.
'c_return'
Функція C повернулася. arg — об’єкт функції C.
'c_виняток'
Функція C викликала виняток. arg — об’єкт функції C.
-
sys.
setrecursionlimit
(limit)¶ Встановіть максимальну глибину стека інтерпретатора Python на limit. Це обмеження запобігає нескінченній рекурсії від переповнення стека C і збою Python.
Найвищий можливий ліміт залежить від платформи. Користувачеві може знадобитися встановити вищий ліміт, якщо у нього є програма, яка потребує глибокої рекурсії, і платформа, яка підтримує вищий ліміт. Це слід робити обережно, тому що занадто високий ліміт може призвести до збою.
Якщо новий ліміт занизький для поточної глибини рекурсії, виникає виняток
RecursionError
.Змінено в версії 3.5.1: Виняток
RecursionError
тепер викликається, якщо нове обмеження занизьке на поточній глибині рекурсії.
-
sys.
setswitchinterval
(interval)¶ Встановити інтервал перемикання потоків інтерпретатора (у секундах). Це значення з плаваючою комою визначає ідеальну тривалість «часових інтервалів», виділених одночасно запущеним потокам Python. Зверніть увагу, що фактичне значення може бути вищим, особливо якщо використовуються довгострокові внутрішні функції або методи. Крім того, операційна система вирішує, який потік буде заплановано в кінці інтервалу. Інтерпретатор не має власного планувальника.
Нове в версії 3.2.
-
sys.
settrace
(tracefunc)¶ Налаштуйте функцію трасування системи, яка дозволяє реалізувати налагоджувач вихідного коду Python у Python. Функція залежить від потоку; щоб налагоджувач підтримував кілька потоків, він повинен зареєструвати функцію трасування за допомогою
settrace()
для кожного потоку, який налагоджується, або використовуватиthreading.settrace()
.Функції трасування повинні мати три аргументи: frame, event і arg. frame — поточний кадр стека. подія — це рядок:
'виклик'
,'рядок'
,'повернення'
,'виняток'
або'код операції'
. arg залежить від типу події.Функція трасування викликається (з event встановленим на
'call'
) кожного разу, коли вводиться нова локальна область; він повинен повертати посилання на локальну функцію трасування, яка буде використана для нової області, абоNone
, якщо область не повинна відстежуватися.The local trace function should return a reference to itself (or to another function for further tracing in that scope), or
None
to turn off tracing in that scope.Якщо у функції відстеження сталася будь-яка помилка, вона буде скинута, як і виклик
settrace(None)
.Події мають таке значення:
'дзвінок'
Викликається функція (або вводиться інший блок коду). Глобальна функція трасування називається; arg є
None
; значення, що повертається, визначає локальну функцію трасування.''рядок'
The interpreter is about to execute a new line of code or re-execute the condition of a loop. The local trace function is called; arg is
None
; the return value specifies the new local trace function. SeeObjects/lnotab_notes.txt
for a detailed explanation of how this works. Per-line events may be disabled for a frame by settingf_trace_lines
toFalse
on that frame.'повернення'
Функція (або інший блок коду) збирається повернутися. Викликається функція локального трасування; arg — це значення, яке буде повернуто, або
None
, якщо подія спричинена винятковою ситуацією. Повернене значення функції трасування ігнорується.'виняток'
Стався виняток. Викликається функція локального трасування; arg — це кортеж
(виключення, значення, відстеження)
; значення, що повертається, визначає нову локальну функцію трасування.'код операції'
The interpreter is about to execute a new opcode (see
dis
for opcode details). The local trace function is called; arg isNone
; the return value specifies the new local trace function. Per-opcode events are not emitted by default: they must be explicitly requested by settingf_trace_opcodes
toTrue
on the frame.
Зауважте, що коли виняткова ситуація поширюється вниз по ланцюжку абонентів, на кожному рівні генерується подія
'виняток'
.Для більш точного використання можна встановити функцію трасування, призначивши
frame.f_trace = tracefunc
явно, замість того, щоб покладатися на її встановлення опосередковано через значення, яке повертає вже встановлена функція трасування. Це також потрібно для активації функції трасування поточного кадру, чогоsettrace()
не робить. Зауважте, що для того, щоб це працювало, глобальна функція трасування має бути встановлена разом ізsettrace()
, щоб увімкнути механізм трасування під час виконання, але це не обов’язково має бути та сама функція трасування (наприклад, це може бути функція відстеження низьких накладних витрат, яка просто повертаєNone
, щоб негайно вимкнути себе в кожному кадрі).Для отримання додаткової інформації про код і об’єкти фрейму зверніться до Стандартна ієрархія типів.
Викликає подію аудиту
sys.settrace
без аргументів.CPython implementation detail: Функція
settrace()
призначена лише для реалізації налагоджувачів, профайлерів, інструментів покриття тощо. Його поведінка є частиною платформи реалізації, а не частиною визначення мови, і тому може бути недоступною в усіх реалізаціях Python.Змінено в версії 3.7:
'opcode'
event type added;f_trace_lines
andf_trace_opcodes
attributes added to frames
-
sys.
set_asyncgen_hooks
(firstiter, finalizer)¶ Приймає два необов’язкові аргументи ключових слів, які викликаються та приймають asynchronous generator iterator як аргумент. Викликаний firstiter буде викликаний, коли асинхронний генератор повторюється вперше. Finalizer буде викликано, коли асинхронний генератор збирається зібрати сміття.
Викликає подію аудиту
sys.set_asyncgen_hooks_firstiter
без аргументів.Викликає подію аудиту
sys.set_asyncgen_hooks_finalizer
без аргументів.Викликаються дві події аудиту, оскільки базовий API складається з двох викликів, кожен із яких має викликати власну подію.
Нове в версії 3.6: Перегляньте PEP 525 для отримання додаткової інформації, а для довідкового прикладу методу finalizer див. реалізацію
asyncio.Loop.shutdown_asyncgens
у Lib/asyncio/base_events.pyПримітка
Цю функцію додано тимчасово (докладніше див. PEP 411).
-
sys.
set_coroutine_origin_tracking_depth
(depth)¶ Allows enabling or disabling coroutine origin tracking. When enabled, the
cr_origin
attribute on coroutine objects will contain a tuple of (filename, line number, function name) tuples describing the traceback where the coroutine object was created, with the most recent call first. When disabled,cr_origin
will be None.Щоб увімкнути, передайте значення depth більше нуля; це встановлює кількість кадрів, інформація яких буде захоплена. Щоб вимкнути, установіть depth на нуль.
Це налаштування залежить від потоку.
Нове в версії 3.7.
Примітка
Цю функцію додано на тимчасовій основі (докладніше див. PEP 411). Використовуйте її лише для налагодження.
-
sys.
_enablelegacywindowsfsencoding
()¶ Changes the default filesystem encoding and errors mode to „mbcs“ and „replace“ respectively, for consistency with versions of Python prior to 3.6.
Це еквівалентно визначенню змінної середовища
PYTHONLEGACYWINDOWSFSENCODING
перед запуском Python.Availability: Windows.
Нове в версії 3.6: Дивіться PEP 529 для більш детальної інформації.
-
sys.
stdin
¶ -
sys.
stdout
¶ -
sys.
stderr
¶ Файлові об’єкти, які використовуються інтерпретатором для стандартного введення, виведення та помилок:
stdin
використовується для всього інтерактивного введення (включаючи викликиinput()
);stdout
використовується для виведення операторівprint()
і expression і для підказокinput()
;Власні підказки інтерпретатора та його повідомлення про помилки надходять до
stderr
.
Ці потоки є звичайними текстовими файлами, як ті, що повертаються функцією
open()
. Їх параметри вибираються наступним чином:The character encoding is platform-dependent. Non-Windows platforms use the locale encoding (see
locale.getpreferredencoding()
).On Windows, UTF-8 is used for the console device. Non-character devices such as disk files and pipes use the system locale encoding (i.e. the ANSI codepage). Non-console character devices such as NUL (i.e. where
isatty()
returnsTrue
) use the value of the console input and output codepages at startup, respectively for stdin and stdout/stderr. This defaults to the system locale encoding if the process is not initially attached to a console.Спеціальну поведінку консолі можна змінити, встановивши змінну середовища PYTHONLEGACYWINDOWSSTDIO перед запуском Python. У цьому випадку кодові сторінки консолі використовуються як для будь-якого іншого символьного пристрою.
На всіх платформах ви можете змінити кодування символів, встановивши змінну середовища
PYTHONIOENCODING
перед запуском Python або використовуючи новий параметр командного рядка-X
utf8
іPYTHONUTF8
змінна середовища. Однак для консолі Windows це стосується лише колиPYTHONLEGACYWINDOWSSTDIO
також встановлено.У інтерактивному режимі потік
stdout
буферизується в рядках. В іншому випадку він буферизується блоками, як звичайні текстові файли. Потікstderr
буферизується в обох випадках. Ви можете зробити обидва потоки небуферизованими, передавши параметр командного рядка-u
або встановивши змінну середовищаPYTHONUNBUFFERED
.
Змінено в версії 3.9: Неінтерактивний
stderr
тепер буферизується рядками замість повної буферизації.Примітка
Щоб записати або прочитати двійкові дані з/до стандартних потоків, використовуйте базовий двійковий об’єкт
buffer
. Наприклад, щоб записати байти вstdout
, використовуйтеsys.stdout.buffer.write(b'abc')
.However, if you are writing a library (and do not control in which context its code will be executed), be aware that the standard streams may be replaced with file-like objects like
io.StringIO
which do not support thebuffer
attribute.
-
sys.
__stdin__
¶ -
sys.
__stdout__
¶ -
sys.
__stderr__
¶ Ці об’єкти містять вихідні значення
stdin
,stderr
іstdout
на початку програми. Вони використовуються під час фіналізації та можуть бути корисними для друку у фактичний стандартний потік незалежно від того, чи було перенаправлено об’єктsys.std*
.Його також можна використовувати для відновлення фактичних файлів до відомих робочих файлових об’єктів, якщо вони були перезаписані зламаним об’єктом. Однак кращим способом зробити це є явне збереження попереднього потоку перед його заміною та відновлення збереженого об’єкта.
Примітка
За деяких умов
stdin
,stdout
іstderr
, а також вихідні значення__stdin__
,__stdout__
і__stderr__
можуть бутиNone
. Зазвичай це стосується програм графічного інтерфейсу Windows, які не підключені до консолі, і програм Python, запущених за допомогою pythonw.
-
sys.
thread_info
¶ named tuple, що містить інформацію про реалізацію потоку.
Attribute
Explanation
name
Name of the thread implementation:
'nt'
: Windows threads'pthread'
: POSIX threads'solaris'
: Solaris threads
lock
Name of the lock implementation:
'semaphore'
: a lock uses a semaphore'mutex+cond'
: a lock uses a mutex and a condition variableNone
, якщо ця інформація невідома
Name and version of the thread library. It is a string, or
None
if this information is unknown.Нове в версії 3.3.
-
sys.
tracebacklimit
¶ Якщо для цієї змінної встановлено ціле число, вона визначає максимальну кількість рівнів інформації про відстеження, що друкується, коли виникає необроблена виняткова ситуація. Типовим значенням є
1000
. Якщо встановлено значення0
або менше, уся інформація зворотного відстеження пригнічується, і друкуються лише тип винятку та значення.
-
sys.
unraisablehook
(unraisable, /)¶ Обробляти неможливий виняток.
Викликається, коли сталася виняткова ситуація, але Python не може її впоратися. Наприклад, коли деструктор викликає виняток або під час збирання сміття (
gc.collect()
).Аргумент unraisable має такі атрибути:
exc_type: Exception type.
exc_value: Exception value, can be
None
.exc_traceback: Exception traceback, can be
None
.err_msg: Error message, can be
None
.object: Object causing the exception, can be
None
.
The default hook formats err_msg and object as:
f'{err_msg}: {object!r}'
; use «Exception ignored in» error message if err_msg isNone
.sys.unraisablehook()
можна перевизначити, щоб керувати обробкою винятків, які не підлягають виклику.Storing exc_value using a custom hook can create a reference cycle. It should be cleared explicitly to break the reference cycle when the exception is no longer needed.
Storing object using a custom hook can resurrect it if it is set to an object which is being finalized. Avoid storing object after the custom hook completes to avoid resurrecting objects.
See also
excepthook()
which handles uncaught exceptions.Raise an auditing event
sys.unraisablehook
with argumentshook
,unraisable
when an exception that cannot be handled occurs. Theunraisable
object is the same as what will be passed to the hook. If no hook has been set,hook
may beNone
.Нове в версії 3.8.
-
sys.
version
¶ Рядок, що містить номер версії інтерпретатора Python, а також додаткову інформацію про номер збірки та використаний компілятор. Цей рядок відображається під час запуску інтерактивного інтерпретатора. Не витягуйте з нього інформацію про версію, скоріше використовуйте
version_info
і функції, надані модулемplatform
.
-
sys.
api_version
¶ Версія C API для цього інтерпретатора. Програмісти можуть вважати це корисним під час усунення конфліктів версій між Python і модулями розширення.
-
sys.
version_info
¶ Кортеж, що містить п’ять компонентів номера версії: major, minor, micro, releaselevel і serial. Усі значення, крім releaselevel, є цілими числами; рівень випуску -
'альфа'
,'бета'
,'кандидат'
або'фінальний'
. Значенняversion_info
, що відповідає версії Python 2.0, є(2, 0, 0, 'final', 0)
. До компонентів також можна отримати доступ за іменем, томуsys.version_info[0]
еквівалентноsys.version_info.major
і так далі.Змінено в версії 3.1: Додано іменовані атрибути компонента.
-
sys.
warnoptions
¶ Це деталь реалізації структури попереджень; не змінюйте це значення. Зверніться до модуля
warnings
, щоб дізнатися більше про структуру попереджень.
-
sys.
winver
¶ The version number used to form registry keys on Windows platforms. This is stored as string resource 1000 in the Python DLL. The value is normally the first three characters of
version
. It is provided in thesys
module for informational purposes; modifying this value has no effect on the registry keys used by Python.Availability: Windows.
-
sys.
_xoptions
¶ Словник різних прапорів, що стосуються реалізації, що передаються через параметр командного рядка
-X
. Назви параметрів або зіставляються з їхніми значеннями, якщо вказано явно, або зTrue
. приклад:$ ./python -Xa=b -Xc Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys._xoptions {'a': 'b', 'c': True}
CPython implementation detail: Це специфічний для CPython спосіб доступу до параметрів, що передаються через
-X
. Інші реалізації можуть експортувати їх іншими засобами або взагалі не експортувати.Нове в версії 3.2.
Цитування
- C99
ISO/IEC 9899:1999. «Programming languages – C.» A public draft of this standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf.