Spec-Zone.ru › Python 3.13

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, и только в том случае, если executable указывает на интерпретатор 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'. Если значение не удалось определить, возвращается пустая строка.

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'. Если значение не удалось определить, возвращается пустая строка.

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

platform.uname()

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

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

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

Записи, которые не удалось определить, устанавливаются в ''.

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

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

Платформа 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–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.13/library/platform.html

Spec-Zone.ru

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