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=0, terse=0)

Повертає єдиний рядок, що визначає базову платформу з якомога більшою кількістю корисної інформації.

Вихід призначений для людиночитаного, а не машинного аналізу. Це може виглядати по-різному на різних платформах, і це призначено.

Якщо 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.

Note that this adds a sixth attribute (processor) not present in the os.uname() result. Also, the attribute names are different for the first two attributes; os.uname() names them sysname and nodename.

Записи, які не можуть бути визначені, мають значення ''.

Змінено в версії 3.3: Результат змінено з кортежу на namedtuple().

Платформа 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'.

Нове в версії 3.8.

platform.win32_is_iot()

Повертає True, якщо випуск Windows, який повертає win32_edition(), розпізнається як випуск IoT.

Нове в версії 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

Нове в версії 3.10.