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=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'.

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

platform.python_version_tuple()

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

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

platform.release()

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

platform.system()

Возвращает имя системы/OS, например '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(). Кроме того, имена атрибутов отличаются для первых двух атрибутов; os.uname() называет их sysname и nodename.

Записи, которые не могут быть определены, имеют значение ''.

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

Платформа Java

platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))

Версия интерфейса для Python.

Возвращает кортеж (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' на многопроцессорных компьютерах. «Свободный» означает, что версия операционной системы не содержит отладочного кода. В нем также может быть указано «Проверено», что означает, что версия операционной системы использует отладочный код, то есть код, который проверяет аргументы, диапазоны и т.д.

platform.win32_edition()

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

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

platform.win32_is_iot()

Возвращает True, если версия Windows, возвращенная с помощью win32_edition(), распознана как версия Интернета вещей.

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

Платформа macOS

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

Получите информацию о версии mac OS и верните ее в виде кортежа (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 standard и доступен в большинстве дистрибутивов 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.

Вернуться на верх