> **Источник:** https://python-all.ru/3.0/library/platform.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# `platform` – Доступ к идентификационным данным нижележащей платформы.

> **Примечание**
>
> Конкретные платформы перечислены в алфавитном порядке, Linux включён в раздел Unix.

## Кроссплатформенные

#### `[platform.architecture]platform.architecture(executable=sys.executable, bits='', linkage='')`

Запрашивает у указанного исполняемого файла (по умолчанию – двоичный файл интерпретатора Python) различные сведения об архитектуре.

Возвращает кортеж `(bits, linkage)`, содержащий информацию о разрядности архитектуры и формате компоновки, используемом для исполняемого файла. Оба значения возвращаются в виде строк.

Значения, которые не удалось определить, возвращаются в соответствии с предустановками параметров. Если bits указан как `''`, то `sizeof(pointer)` (или `sizeof(long)` в Python версии \< 1.5.2) используется как индикатор поддерживаемого размера указателя.

Функция использует системную команду `file` для выполнения работы. Она доступна на большинстве (если не на всех) Unix-платформах и некоторых платформах, не относящихся к Unix, и только если исполняемый файл указывает на интерпретатор Python. Разумные значения по умолчанию используются, когда указанные условия не выполняются.

#### `[platform.machine]platform.machine()`

Возвращает тип машины, например

`'i386'`

. Если значение не удалось определить, возвращается пустая строка.

#### `[platform.node]platform.node()`

Возвращает сетевое имя компьютера (может быть не полностью определённым!). Возвращается пустая строка, если значение не удаётся определить.

#### `[platform.platform]platform.platform(aliased=0, terse=0)`

Возвращает одну строку, идентифицирующую базовую платформу с максимально возможным количеством полезной информации.

Результат предназначен для *чтения человеком*, а не для машинного разбора. Он может выглядеть по-разному на разных платформах, и это предусмотрено.

Если *aliased* истинно, функция будет использовать псевдонимы для различных платформ, которые сообщают системные имена, отличающиеся от общепринятых; например, SunOS будет отображаться как Solaris. Для реализации этого используется функция [`system_alias()`](https://python-all.ru/3.0/library/platform.html#platform.system_alias).

Установка *terse* в true заставляет функцию возвращать только абсолютный минимум информации, необходимый для идентификации платформы.

#### `[platform.processor]platform.processor()`

Возвращает (настоящее) имя процессора, например `'amdk6'`.

Если значение не удалось определить, возвращается пустая строка. Обратите внимание: многие платформы не предоставляют эту информацию или просто возвращают то же значение, что и в случае с [`machine()`](https://python-all.ru/3.0/library/platform.html#platform.machine). NetBSD так и делает.

#### `[platform.python_build]platform.python_build()`

Возвращает кортеж

`(buildno, builddate)`

, содержащий номер сборки и дату сборки в виде строк.

#### `[platform.python_compiler]platform.python_compiler()`

Возвращает строку, идентифицирующую компилятор, использованный для компиляции Python.

#### `[platform.python_branch]platform.python_branch()`

Возвращает строку, идентифицирующую ветку SCM реализации Python.

#### `[platform.python_implementation]platform.python_implementation()`

Возвращает строку, идентифицирующую реализацию Python. Возможные возвращаемые значения: ‘CPython’, ‘IronPython’, ‘Jython’

#### `[platform.python_revision]platform.python_revision()`

Возвращает строку, идентифицирующую ревизию SCM реализации Python.

#### `[platform.python_version]platform.python_version()`

Возвращает версию Python в виде строки `'major.minor.patchlevel'`

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

#### `[platform.python_version_tuple]platform.python_version_tuple()`

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

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

#### `[platform.release]platform.release()`

Возвращает релиз системы, например

`'2.2.0'`

или

`'NT'`

. Если значение не удалось определить, возвращается пустая строка.

#### `[platform.system]platform.system()`

Возвращает имя системы/ОС, например

`'Linux'`

,

`'Windows'`

или

`'Java'`

. Если значение не удалось определить, возвращается пустая строка.

#### `[platform.system_alias]platform.system_alias(system, release, version)`

Возвращает

`(system, release, version)`

, приведённый к общеупотребительным маркетинговым названиям, используемым для некоторых систем. В некоторых случаях он также меняет порядок информации, чтобы избежать путаницы.

#### `[platform.version]platform.version()`

Возвращает номер версии выпуска системы, например

`'#3 на degas'`

. Если определить значение не удаётся, возвращается пустая строка.

#### `[platform.uname]platform.uname()`

Довольно переносимый интерфейс uname. Возвращает кортеж строк `(system, node, release, version, machine, processor)`, идентифицирующих базовую платформу.

Обратите внимание, что в отличие от функции [`os.uname()`](https://python-all.ru/3.0/library/os.html#os.uname), эта функция также возвращает возможную информацию о процессоре как дополнительный элемент кортежа.

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

## Платформа Java

#### `[platform.java_ver]platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))`

Интерфейс версии для JPython.

Возвращает кортеж `(release, vendor, vminfo, osinfo)`, где *vminfo* является кортежем `(vm_name, vm_release, vm_vendor)`, а *osinfo* – кортежем `(os_name, os_version, os_arch)`. Значения, которые не удаётся определить, устанавливаются в значения по умолчанию, задаваемые параметрами (все они по умолчанию равны `''`).

## Платформа Windows

#### `[platform.win32_ver]platform.win32_ver(release='', version='', csd='', ptype='')`

Получает дополнительные сведения о версии из реестра Windows и возвращает кортеж `(version, csd, ptype)`, соответствующий номеру версии, уровню CSD и типу ОС (однопроцессорная или многопроцессорная).

В качестве подсказки: *ptype* равен `'Uniprocessor Free'` на однопроцессорных машинах NT и `'Multiprocessor Free'` на многопроцессорных. *‘Free’* указывает, что версия ОС не содержит отладочного кода. Также может быть указано *‘Checked’*, что означает, что версия ОС использует отладочный код, то есть код, проверяющий аргументы, диапазоны и т.д.

> **Примечание**
>
> Примечание: эта функция лучше всего работает с установленным пакетом `win32all` Марка Хэммонда, а также на Python 2.3 и новее (поддержка была добавлена в Python 2.6). Она, очевидно, работает только на платформах, совместимых с Win32.

### Специфично для Win95/98

#### `[platform.popen]platform.popen(cmd, mode='r', bufsize=None)`

Переносимый интерфейс

[`popen()`](https://python-all.ru/3.0/library/platform.html#platform.popen)

. Ищет рабочую реализацию popen, отдавая предпочтение

`win32pipe.popen()`

. На Windows NT

`win32pipe.popen()`

должна работать; на Windows 9x она зависает из-за ошибок в библиотеке MS C.

## Платформа Mac OS

#### `[platform.mac_ver]platform.mac_ver(release='', versioninfo=('', '', ''), machine='')`

Получает информацию о версии Mac OS и возвращает её в виде кортежа `(release, versioninfo, machine)`, где *versioninfo* является кортежем `(version, dev_stage, non_release_version)`.

Записи, которые невозможно определить, устанавливаются в `''`. Все элементы кортежа являются строками.

Документация по нижележащему API `gestalt` доступна онлайн по адресу [http://www.rgaros.nl/gestalt/](https://python-all.ru/3.0/library/platform.html).

## Платформы Unix

#### `[platform.dist]platform.dist(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...))`

Это другое имя для

[`linux_distribution()`](https://python-all.ru/3.0/library/platform.html#platform.linux_distribution)

.

#### `[platform.linux_distribution]platform.linux_distribution(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...), full_distribution_name=1)`

Пытается определить имя дистрибутива Linux.

`supported_dists` может быть задан для определения набора дистрибутивов Linux, которые следует искать. По умолчанию он представляет собой список поддерживаемых в настоящее время дистрибутивов Linux, идентифицируемых по имени файла выпуска.

Если `full_distribution_name` имеет значение true (по умолчанию), возвращается полное название дистрибутива, полученное из ОС. В противном случае используется краткое имя из `supported_dists`.

Возвращает кортеж `(distname,version,id)`, который по умолчанию принимает значения, переданные в качестве параметров. `id` – это элемент в скобках после номера версии. Обычно это кодовое имя версии.

#### `[platform.libc_ver]platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=2048)`

Пытается определить версию libc, с которой слинкован исполняемый файл (по умолчанию – интерпретатор Python). Возвращает кортеж строк `(lib, version)`, которые по умолчанию принимают заданные параметры в случае неудачи поиска.

Обратите внимание, что эта функция обладает глубокими знаниями о том, как разные версии libc добавляют символы в исполняемый файл, и, вероятно, применима только к исполняемым файлам, скомпилированным с помощью **gcc**.

Файл читается и сканируется блоками по *chunksize* байт.
