platform — Доступ к идентификационным данным базовой платформы.

Kod źródłowy: Lib/platform.py


Informacja

Конкретні платформи, перелічені в алфавітному порядку, з Linux включено в розділ Unix.

Multiplataforma

platform.architecture(executable=sys.executable, bits='', linkage='')

Запитує наданий виконуваний файл (за замовчуванням двійковий файл інтерпретатора Python) для отримання різноманітної інформації про архітектуру.

Повертає кортеж (bits, linkage), який містить інформацію про бітову архітектуру та формат зв’язку, що використовується для виконуваного файлу. Обидва значення повертаються як рядки.

Значення, які не можуть бути визначені, повертаються відповідно до налаштувань параметрів. Якщо біти задано як '', sizeof(pointer) (або sizeof(long) у версії Python < 1.5.2) використовується як індикатор підтримуваного розміру покажчика.

Функція покладається на системну команду file для виконання фактичної роботи. Це доступно на більшості, якщо не на всіх платформах Unix і на деяких платформах, що не належать до Unix, і тільки якщо виконуваний файл вказує на інтерпретатор Python. Розумні значення за замовчуванням використовуються, коли вищезазначені потреби не задовольняються.

Informacja

У macOS (і, можливо, на інших платформах) виконувані файли можуть бути універсальними файлами, що містять кілька архітектур.

Чтобы получить «64-битность» текущего интерпретатора, более надежно запросить атрибут sys.maxsize:

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, функція повертатиме лише абсолютний мінімум інформації, необхідної для ідентифікації платформи.

Zmienione w wersji 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'. Якщо значення неможливо визначити, повертається порожній рядок.

В iOS и Android возвращается имя операционной системы, обращенной к пользователю (т. е. «iOS», «iPadOS» или «Android»). Чтобы получить имя ядра («Darwin» или «Linux»), используйте os.uname().

platform.system_alias(system, release, version)

Повертає (система, випуск, версія), пов’язаний із загальними маркетинговими назвами, які використовуються для деяких систем. Він також виконує певне впорядкування інформації в деяких випадках, коли інакше це може призвести до плутанини.

platform.version()

Повертає версію випуску системи, напр. '#3 на Дега'. Якщо значення неможливо визначити, повертається порожній рядок.

В iOS и Android это версия ОС, ориентированная на пользователя. Чтобы получить версию ядра Darwin или Linux, используйте os.uname().

platform.uname()

Досить портативний інтерфейс uname. Повертає namedtuple(), що містить шість атрибутів: system, node, release, version, machine, і processor.

processor разрешается поздно, по требованию.

Note: the first two attribute names differ from the names presented by os.uname(), where they are named sysname and nodename.

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

Zmienione w wersji 3.3: Результат змінено з кортежу на namedtuple().

Zmienione w wersji 3.9: processor разрешается поздно, а не сразу.

Plataforma 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). Значення, які не можуть бути визначені, встановлюються за замовчуванням, наданим як параметри (усі за замовчуванням '').

Deprecated since version 3.13, will be removed in version 3.15: Он практически не тестировался, имел запутанный API и был полезен только для поддержки Jython.

Plataforma Windows

platform.win32_ver(release='', version='', csd='', ptype='')

Отримайте додаткову інформацію про версію з реєстру Windows і поверніть кортеж (release, version, csd, ptype) із посиланням на випуск ОС, номер версії, рівень CSD (пакет оновлень) і тип ОС (багато/однопроцесор). Значення, які не можуть бути визначені, встановлюються на значення за замовчуванням, надані як параметри (усі типові значення — порожній рядок).

Подсказка: ptype — это 'Uniprocessor Free' на однопроцессорных машинах NT и 'Multiprocessor Free' на многопроцессорных машинах. «Бесплатно» относится к версии ОС, свободной от отладочного кода. Также может быть указано «Проверено», что означает, что версия ОС использует код отладки, т. е. код, который проверяет аргументы, диапазоны и т. д.

platform.win32_edition()

Повертає рядок, що представляє поточну версію Windows, або None, якщо значення неможливо визначити. Можливі значення включають, але не обмежуються ними, 'Enterprise', 'IoTUAP', 'ServerStandard' і 'nanoserver'.

Dodane w wersji 3.8.

platform.win32_is_iot()

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

Dodane w wersji 3.8.

Plataforma macOS

platform.mac_ver(release='', versioninfo=('', '', ''), machine='')

Отримати інформацію про версію macOS і повернути її як кортеж (release, versioninfo, machine), де versioninfo є кортежем (version, dev_stage, non_release_version).

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

Plataforma iOS

platform.ios_ver(system='', release='', model='', is_simulator=False)

Получите информацию о версии iOS и верните ее как namedtuple() со следующими атрибутами:

  • system — имя ОС; либо 'iOS', либо 'iPadOS'.

  • release — это номер версии iOS в виде строки (например, '17.2').

  • model — идентификатор модели устройства; это будет строка типа «iPhone13,2» для физического устройства или «iPhone» на симуляторе.

  • is_simulator — это логическое значение, описывающее, работает ли приложение на симуляторе или на физическом устройстве.

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

Plataformas Unix

platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=16384)

Намагається визначити версію libc, з якою пов’язано виконуваний файл (за замовчуванням – інтерпретатор Python). Повертає кортеж рядків (lib, version), які за замовчуванням мають задані параметри, якщо пошук не вдасться.

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

Файл зчитується та сканується шматками chunksize байтів.

Plataformas 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.

Przykład:

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

Dodane w wersji 3.10.

Plataforma Android

platform.android_ver(release='', api_level=0, manufacturer='', model='', device='', is_emulator=False)

Получите информацию об устройстве Android. Возвращает namedtuple() со следующими атрибутами. Для значений, которые невозможно определить, устанавливаются значения по умолчанию, заданные в качестве параметров.

  • release - версия Android, в виде строки (например, "14").

  • api_level — уровень API работающего устройства в виде целого числа (например, 34 для Android 14). Чтобы узнать уровень API, на котором был построен Python, см. sys.getandroidapilevel().

  • производитель - Название производителя.

  • model – Название модели — обычно маркетинговое название или номер модели.

  • deviceИмя устройства — обычно номер модели или кодовое имя.

  • is_emulator - True, если устройство является эмулятором; False, если это физическое устройство.

Google ведет список известных моделей и названий устройств.

Dodane w wersji 3.13.

Использование командной строки

platform também pode ser invocado diretamente usando a opção -m do interpretador:

python -m platform [--terse] [--nonaliased] [{nonaliased,terse} ...]

Приймаються такі варіанти:

--terse

Exibe informações concisas sobre a plataforma. Isso equivale a chamar platform.platform() com o argumento terse definido como True.

--nonaliased

Exibe informações da plataforma sem alias de nome do sistema/SO. Isso equivale a chamar platform.platform() com o argumento aliased definido como True.

Você também pode passar um ou mais argumentos posicionais (terse, nonaliased) para controlar explicitamente o formato de saída. Eles se comportam de forma semelhante às suas opções correspondentes.