platform
— Access to underlying platform’s identifying data¶
Вихідний код: Lib/platform.py
Примітка
Конкретні платформи, перелічені в алфавітному порядку, з Linux включено в розділ Unix.
Крос-платформа¶
- platform.architecture(executable=sys.executable, bits='', linkage='')¶
Запитує наданий виконуваний файл (за замовчуванням двійковий файл інтерпретатора Python) для отримання різноманітної інформації про архітектуру.
Повертає кортеж
(bits, linkage)
, який містить інформацію про бітову архітектуру та формат зв’язку, що використовується для виконуваного файлу. Обидва значення повертаються як рядки.Значення, які не можуть бути визначені, повертаються відповідно до налаштувань параметрів. Якщо біти задано як
''
,sizeof(pointer)
(абоsizeof(long)
у версії Python < 1.5.2) використовується як індикатор підтримуваного розміру покажчика.Функція покладається на системну команду
file
для виконання фактичної роботи. Це доступно на більшості, якщо не на всіх платформах Unix і на деяких платформах, що не належать до Unix, і тільки якщо виконуваний файл вказує на інтерпретатор Python. Розумні значення за замовчуванням використовуються, коли вищезазначені потреби не задовольняються.Примітка
У macOS (і, можливо, на інших платформах) виконувані файли можуть бути універсальними файлами, що містять кілька архітектур.
To get at the «64-bitness» of the current interpreter, it is more reliable to query the
sys.maxsize
attribute:is_64bits = sys.maxsize > 2**32
- platform.machine()¶
Повертає тип машини, напр.
'AMD64'
. Якщо значення неможливо визначити, повертається порожній рядок.
- platform.node()¶
Повертає мережеве ім’я комп’ютера (може бути неповним!). Якщо значення неможливо визначити, повертається порожній рядок.
- platform.platform(aliased=False, terse=False)¶
Повертає єдиний рядок, що визначає базову платформу з якомога більшою кількістю корисної інформації.
Вихід призначений для людиночитаного, а не машинного аналізу. Це може виглядати по-різному на різних платформах, і це призначено.
Якщо aliased має значення true, функція використовуватиме псевдоніми для різних платформ, які повідомлятимуть імена систем, які відрізняються від їхніх звичайних імен, наприклад, SunOS буде повідомлено як Solaris. Для реалізації цього використовується функція
system_alias()
.Якщо встановити terse значення true, функція повертатиме лише абсолютний мінімум інформації, необхідної для ідентифікації платформи.
Змінено в версії 3.8: У macOS функція тепер використовує
mac_ver()
, якщо повертає непорожній рядок випуску, щоб отримати версію macOS, а не версію Darwin.
- platform.processor()¶
Повертає (справжню) назву процесора, напр.
'amdk6'
.Якщо значення неможливо визначити, повертається порожній рядок. Зауважте, що багато платформ не надають цю інформацію або просто повертають те саме значення, що й для
machine()
. NetBSD робить це.
- platform.python_build()¶
Повертає кортеж
(buildno, builddate)
із зазначенням номера та дати складання Python у вигляді рядків.
- platform.python_compiler()¶
Повертає рядок, що ідентифікує компілятор, використаний для компіляції Python.
- platform.python_branch()¶
Повертає рядок, що ідентифікує гілку SCM реалізації Python.
- platform.python_implementation()¶
Повертає рядок, що ідентифікує реалізацію Python. Можливі значення повернення: „CPython“, „IronPython“, „Jython“, „PyPy“.
- platform.python_revision()¶
Повертає рядок, що ідентифікує версію SCM реалізації Python.
- platform.python_version()¶
Повертає версію Python як рядок
'major.minor.patchlevel
.Зауважте, що на відміну від
sys.version
Python, повернуте значення завжди включатиме patchlevel (він за замовчуванням дорівнює 0).
- platform.python_version_tuple()¶
Повертає версію Python як кортеж
(major, minor, patchlevel)
рядків.Зауважте, що на відміну від
sys.version
Python, повернуте значення завжди включатиме рівень виправлення (за замовчуванням він'0'
).
- platform.release()¶
Повертає випуск системи, напр.
'2.2.0'
або'NT'
. Якщо значення неможливо визначити, повертається порожній рядок.
- platform.system()¶
Повертає назву системи/ОС, наприклад
'Linux'
,'Darwin'
,'Java'
,'Windows'
. Якщо значення неможливо визначити, повертається порожній рядок.
- platform.system_alias(system, release, version)¶
Повертає
(система, випуск, версія)
, пов’язаний із загальними маркетинговими назвами, які використовуються для деяких систем. Він також виконує певне впорядкування інформації в деяких випадках, коли інакше це може призвести до плутанини.
- platform.version()¶
Повертає версію випуску системи, напр.
'#3 на Дега'
. Якщо значення неможливо визначити, повертається порожній рядок.
- platform.uname()¶
Досить портативний інтерфейс uname. Повертає
namedtuple()
, що містить шість атрибутів:system
,node
,release
,version
,machine
, іprocessor
.processor
is resolved late, on demand.Note: the first two attribute names differ from the names presented by
os.uname()
, where they are namedsysname
andnodename
.Записи, які не можуть бути визначені, мають значення
''
.Змінено в версії 3.3: Результат змінено з кортежу на
namedtuple()
.Змінено в версії 3.9:
processor
is resolved late instead of immediately.
Платформа Java¶
- platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))¶
Версія інтерфейсу для Jython.
Повертає кортеж
(release, vendor, vminfo, osinfo)
, де vminfo є кортежем(vm_name, vm_release, vm_vendor)
, а osinfo є кортежем(os_name, os_version, os_arch)
. Значення, які не можуть бути визначені, встановлюються за замовчуванням, наданим як параметри (усі за замовчуванням''
).
Платформа Windows¶
- platform.win32_ver(release='', version='', csd='', ptype='')¶
Отримайте додаткову інформацію про версію з реєстру Windows і поверніть кортеж
(release, version, csd, ptype)
із посиланням на випуск ОС, номер версії, рівень CSD (пакет оновлень) і тип ОС (багато/однопроцесор). Значення, які не можуть бути визначені, встановлюються на значення за замовчуванням, надані як параметри (усі типові значення — порожній рядок).As a hint: ptype is
'Uniprocessor Free'
on single processor NT machines and'Multiprocessor Free'
on multi processor machines. The'Free'
refers to the OS version being free of debugging code. It could also state'Checked'
which means the OS version uses debugging code, i.e. code that checks arguments, ranges, etc.
- platform.win32_edition()¶
Повертає рядок, що представляє поточну версію Windows, або
None
, якщо значення неможливо визначити. Можливі значення включають, але не обмежуються ними,'Enterprise'
,'IoTUAP'
,'ServerStandard'
і'nanoserver'
.Added in version 3.8.
- platform.win32_is_iot()¶
Повертає
True
, якщо випуск Windows, який повертаєwin32_edition()
, розпізнається як випуск IoT.Added in version 3.8.
Платформа macOS¶
- platform.mac_ver(release='', versioninfo=('', '', ''), machine='')¶
Отримати інформацію про версію macOS і повернути її як кортеж
(release, versioninfo, machine)
, де versioninfo є кортежем(version, dev_stage, non_release_version)
.Записи, які не можуть бути визначені, мають значення
''
. Усі записи кортежу є рядками.
Платформи Unix¶
- platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=16384)¶
Намагається визначити версію libc, з якою пов’язано виконуваний файл (за замовчуванням – інтерпретатор Python). Повертає кортеж рядків
(lib, version)
, які за замовчуванням мають задані параметри, якщо пошук не вдасться.Зауважте, що ця функція має глибокі знання про те, як різні версії libc додають символи до виконуваного файлу, ймовірно, придатна лише для виконуваних файлів, скомпільованих за допомогою gcc.
Файл зчитується та сканується шматками chunksize байтів.
Платформи Linux¶
- platform.freedesktop_os_release()¶
Отримайте ідентифікатор операційної системи з файлу
os-release
і поверніть його як dict. Файлos-release
є стандартом freedesktop.org і доступний у більшості дистрибутивів Linux. Помітним винятком є Android і дистрибутиви на базі Android.Викликає
OSError
або підклас, якщо ні/etc/os-release
, ні/usr/lib/os-release
не можуть бути прочитані.У разі успіху функція повертає словник, де ключі та значення є рядками. Значення мають спеціальні символи, такі як
"
і$
без лапок. ПоляNAME
,ID
іPRETTY_NAME
завжди визначаються відповідно до стандарту. Усі інші поля Постачальники можуть включати додаткові поля.Зауважте, що такі поля, як
NAME
,VERSION
іVARIANT
, є рядками, придатними для представлення користувачам. Програми мають використовувати такі поля, якID
,ID_LIKE
,VERSION_ID
абоVARIANT_ID
для визначення дистрибутивів Linux.Приклад:
def get_like_distro(): info = platform.freedesktop_os_release() ids = [info["ID"]] if "ID_LIKE" in info: # ids are space separated and ordered by precedence ids.extend(info["ID_LIKE"].split()) return ids
Added in version 3.10.