Spec-Zone.ru › Python 3.14

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

Исходный код: Lib/platform.py

Примечание

Конкретные платформы перечислены в алфавитном порядке; Linux включён в раздел Unix.

Кроссплатформенные функции

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

Запрашивает у указанного исполняемого файла (по умолчанию — бинарного файла интерпретатора Python) различные сведения об архитектуре.

Возвращает кортеж (bits, linkage), содержащий сведения о разрядности и формате связывания исполняемого файла. Оба значения возвращаются в виде строк.

Значения, которые невозможно определить, возвращаются такими, какими их задали в параметрах. Если bits задан как '', для определения поддерживаемого размера указателя используется sizeof(pointer) (или sizeof(long) в Python версии < 1.5.2).

Для выполнения фактической работы функция использует системную команду file. Она доступна на большинстве, если не на всех, платформах Unix, а также на некоторых платформах, отличных от Unix, и только если исполняемый файл указывает на интерпретатор Python. Если перечисленные выше условия не выполняются, используются подходящие значения по умолчанию.

Примечание

В 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, функция вернёт только минимально необходимую информацию для идентификации платформы.

Изменено в версии 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'.

Обратите внимание: в отличие от Python sys.version, возвращаемое значение всегда включает уровень исправлений (по умолчанию он равен 0).

platform.python_version_tuple()

Возвращает версию Python в виде кортежа (major, minor, patchlevel) строк.

Обратите внимание: в отличие от Python sys.version, возвращаемое значение всегда включает уровень исправлений (по умолчанию он равен '0').

platform.release()

Возвращает выпуск системы, например '2.2.0' или 'NT'. Если значение невозможно определить, возвращается пустая строка.

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

platform.system()

Возвращает название системы/ОС, например 'Linux', 'Darwin', 'Java', 'Windows'. Если значение невозможно определить, возвращается пустая строка.

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

platform.system_alias(system, release, version)

Возвращает (system, release, version) с псевдонимами — общепринятыми маркетинговыми названиями некоторых систем. В некоторых случаях функция также меняет порядок сведений, чтобы избежать путаницы.

platform.version()

Возвращает версию выпуска системы, например '#3 on degas'. Если значение невозможно определить, возвращается пустая строка.

platform.uname()

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

processor определяется поздно, по запросу.

Примечание: названия первых двух атрибутов отличаются от названий, возвращаемых os.uname(), где они называются sysname и nodename.

Элементам, значения которых невозможно определить, присваивается ''.

Изменено в версии 3.3: Результат изменён с кортежа на namedtuple().

Изменено в версии 3.9: processor теперь определяется поздно, а не сразу.

platform.invalidate_caches()

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

Добавлено в версии 3.14.

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

Устарело с версии 3.13, будет удалено в версии 3.15: Функция почти не тестировалась, имела запутанный API и была полезна только для поддержки Jython.

Платформа Windows

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

Получает дополнительные сведения о версии из реестра Windows и возвращает кортеж (release, version, csd, ptype) со сведениями о выпуске ОС, номере версии, уровне CSD (пакете обновления) и типе ОС (с одним или несколькими процессорами). Значения, которые невозможно определить, заменяются значениями по умолчанию, заданными в параметрах (по умолчанию для всех параметров используется пустая строка).

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

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

Элементам, значения которых невозможно определить, присваивается ''. Все элементы кортежа — строки.

Платформа 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 — логическое значение, указывающее, запущено ли приложение на симуляторе или физическом устройстве.

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

Платформы 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 и возвращает их в виде словаря. Файл os-release соответствует стандарту freedesktop.org и доступен в большинстве дистрибутивов Linux. Заметное исключение — Android и основанные на Android дистрибутивы.

Вызывает OSError или его подкласс, если не удаётся прочитать ни /etc/os-release, ни /usr/lib/os-release.

В случае успеха функция возвращает словарь, в котором ключи и значения представлены строками. Специальные символы в значениях, такие как " и $, не заключены в кавычки. Поля NAME, ID и PRETTY_NAME всегда определены согласно стандарту. Все остальные поля необязательны. Поставщики могут добавлять дополнительные поля.

Обратите внимание: такие поля, как NAME, VERSION и VARIANT, содержат строки, предназначенные для отображения пользователям. Для идентификации дистрибутивов Linux программам следует использовать такие поля, как ID, ID_LIKE, VERSION_ID или VARIANT_ID.

Пример:

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.

Платформа 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().
  • manufacturer — название производителя.
  • model — название модели — обычно маркетинговое название или номер модели.
  • device — название устройства — обычно номер модели или кодовое название.
  • is_emulator — True, если устройство является эмулятором; False, если это физическое устройство.

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

Добавлено в версии 3.13.

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

platform также можно вызвать напрямую с помощью переключателя -m интерпретатора:

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

Допускаются следующие параметры:

--terse

Выводит краткие сведения о платформе. Эквивалентно вызову platform.platform() с аргументом terse, равным True.

--nonaliased

Выводит сведения о платформе без замены названия системы/ОС псевдонимом. Эквивалентно вызову platform.platform() с аргументом aliased, равным True.

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

© 2001 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/library/platform.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API