Spec-Zone.ru › Python 3.12

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

platform.system()

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

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 теперь определяется поздно, а не сразу.

Платформа 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 (пакет обновления) и тип ОС (для одного или нескольких процессоров). Неопределённым значениям присваиваются значения по умолчанию, заданные параметрами (по умолчанию для всех параметров используется пустая строка).

Подсказка: 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).

Неопределённым элементам присваивается значение ''. Все элементы кортежа являются строками.

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

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

Spec-Zone.ru

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