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