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