Документация Python неофициальный перевод

platform.md

180 строк · 15.7 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/3.3/library/platform.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 16.15. [`platform`](https://python-all.ru/3.3/library/platform.html#module-platform) – Доступ к идентификационным данным нижележащей платформы89**Исходный код:** [Lib/platform.py](https://python-all.ru/src/3.3/Lib/platform.py)1011---1213> **Примечание**14>15> Конкретные платформы перечислены в алфавитном порядке, Linux включён в раздел Unix.1617## 16.15.1. Кроссплатформенные1819#### `platform.architecture(executable=sys.executable, bits='', linkage='')`2021Запрашивает у указанного исполняемого файла (по умолчанию – двоичный файл интерпретатора Python) различные сведения об архитектуре.2223Возвращает кортеж `(bits, linkage)`, содержащий информацию о разрядности архитектуры и формате компоновки, используемом для исполняемого файла. Оба значения возвращаются в виде строк.2425Значения, которые не удалось определить, возвращаются в соответствии с предустановками параметров. Если bits указан как `''`, то `sizeof(pointer)` (или `sizeof(long)` в Python версии \< 1.5.2) используется как индикатор поддерживаемого размера указателя.2627Функция использует системную команду `file` для выполнения работы. Она доступна на большинстве (если не на всех) Unix-платформах и некоторых платформах, не относящихся к Unix, и только если исполняемый файл указывает на интерпретатор Python. Разумные значения по умолчанию используются, когда указанные условия не выполняются.2829> **Примечание**30>31> На Mac OS X (и, возможно, на других платформах) исполняемые файлы могут быть универсальными файлами, содержащими несколько архитектур.32>33> Чтобы определить «64-битность» текущего интерпретатора, надёжнее запросить атрибут [`sys.maxsize`](https://python-all.ru/3.3/library/sys.html#sys.maxsize):34>35> ```python36> is_64bits = sys.maxsize > 2**3237> ```3839#### `platform.machine()`4041Возвращает тип машины, например `'i386'`. Если значение не удалось определить, возвращается пустая строка.4243#### `platform.node()`4445Возвращает сетевое имя компьютера (может быть не полностью определённым!). Возвращается пустая строка, если значение не удаётся определить.4647#### `platform.platform(aliased=0, terse=0)`4849Возвращает одну строку, идентифицирующую базовую платформу с максимально возможным количеством полезной информации.5051Результат предназначен для *чтения человеком*, а не для машинного разбора. Он может выглядеть по-разному на разных платформах, и это предусмотрено.5253Если *aliased* истинно, функция будет использовать псевдонимы для различных платформ, которые сообщают системные имена, отличающиеся от общепринятых; например, SunOS будет отображаться как Solaris. Для реализации этого используется функция [`system_alias()`](https://python-all.ru/3.3/library/platform.html#platform.system_alias).5455Установка *terse* в true заставляет функцию возвращать только абсолютный минимум информации, необходимый для идентификации платформы.5657#### `platform.processor()`5859Возвращает (настоящее) имя процессора, например `'amdk6'`.6061Если значение не удалось определить, возвращается пустая строка. Обратите внимание: многие платформы не предоставляют эту информацию или просто возвращают то же значение, что и в случае с [`machine()`](https://python-all.ru/3.3/library/platform.html#platform.machine). NetBSD так и делает.6263#### `platform.python_build()`6465Возвращает кортеж `(buildno, builddate)`, содержащий номер сборки и дату сборки в виде строк.6667#### `platform.python_compiler()`6869Возвращает строку, идентифицирующую компилятор, использованный для компиляции Python.7071#### `platform.python_branch()`7273Возвращает строку, идентифицирующую ветку SCM реализации Python.7475#### `platform.python_implementation()`7677Возвращает строку, идентифицирующую реализацию Python. Возможные возвращаемые значения: 'CPython', 'IronPython', 'Jython', 'PyPy'.7879#### `platform.python_revision()`8081Возвращает строку, идентифицирующую ревизию SCM реализации Python.8283#### `platform.python_version()`8485Возвращает версию Python в виде строки `'major.minor.patchlevel'`8687Обратите внимание: в отличие от `sys.version`, возвращаемое значение всегда включает уровень патча (по умолчанию 0).8889#### `platform.python_version_tuple()`9091Возвращает версию Python в виде кортежа строк `(major, minor, patchlevel)`.9293Обратите внимание: в отличие от `sys.version`, возвращаемое значение всегда включает уровень патча (по умолчанию `'0'`).9495#### `platform.release()`9697Возвращает релиз системы, например `'2.2.0'` или `'NT'`. Если значение не удалось определить, возвращается пустая строка.9899#### `platform.system()`100101Возвращает имя системы/ОС, например `'Linux'`, `'Windows'` или `'Java'`. Если значение не удалось определить, возвращается пустая строка.102103#### `platform.system_alias(system, release, version)`104105Возвращает `(system, release, version)`, приведённый к общеупотребительным маркетинговым названиям, используемым для некоторых систем. В некоторых случаях он также меняет порядок информации, чтобы избежать путаницы.106107#### `platform.version()`108109Возвращает номер версии выпуска системы, например `'#3 на degas'`. Если определить значение не удаётся, возвращается пустая строка.110111#### `platform.uname()`112113Достаточно переносимый интерфейс uname. Возвращает [`namedtuple()`](https://python-all.ru/3.3/library/collections.html#collections.namedtuple), содержащий шесть атрибутов: [`system`](https://python-all.ru/3.3/library/platform.html#platform.system), [`node`](https://python-all.ru/3.3/library/platform.html#platform.node), [`release`](https://python-all.ru/3.3/library/platform.html#platform.release), [`version`](https://python-all.ru/3.3/library/platform.html#platform.version), [`machine`](https://python-all.ru/3.3/library/platform.html#platform.machine) и [`processor`](https://python-all.ru/3.3/library/platform.html#platform.processor).114115Обратите внимание, что добавляется шестой атрибут ([`processor`](https://python-all.ru/3.3/library/platform.html#platform.processor)), отсутствующий в результате [`os.uname()`](https://python-all.ru/3.3/library/os.html#os.uname). Кроме того, имена первых двух атрибутов различаются: [`os.uname()`](https://python-all.ru/3.3/library/os.html#os.uname) называет их `sysname` и `nodename`.116117Записи, которые не удаётся определить, устанавливаются в `''`.118119Изменено в версии 3.3: Результат изменён с кортежа на namedtuple.120121## 16.15.2. Платформа Java122123#### `platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))`124125Интерфейс версии для Jython.126127Возвращает кортеж `(release, vendor, vminfo, osinfo)`, где *vminfo* является кортежем `(vm_name, vm_release, vm_vendor)`, а *osinfo* – кортежем `(os_name, os_version, os_arch)`. Значения, которые не удаётся определить, устанавливаются в значения по умолчанию, задаваемые параметрами (все они по умолчанию равны `''`).128129## 16.15.3. Платформа Windows130131#### `platform.win32_ver(release='', version='', csd='', ptype='')`132133Извлекает дополнительную информацию о версии из реестра Windows и возвращает кортеж `(release, version, csd, ptype)`, содержащий сведения о выпуске ОС, номере версии, уровне CSD (пакете обновления) и типе ОС (много/однопроцессорная).134135В качестве подсказки: *ptype* равен `'Uniprocessor Free'` на однопроцессорных машинах NT и `'Multiprocessor Free'` на многопроцессорных. *‘Free’* указывает, что версия ОС не содержит отладочного кода. Также может быть указано *‘Checked’*, что означает, что версия ОС использует отладочный код, то есть код, проверяющий аргументы, диапазоны и т.д.136137> **Примечание**138>139> Эта функция лучше всего работает с установленным пакетом `win32all` Марка Хаммонда, но также доступна на Python 2.3 и новее (поддержка добавлена в Python 2.6). Очевидно, работает только на платформах, совместимых с Win32.140141### 16.15.3.1. Специфичные для Win95/98142143#### `platform.popen(cmd, mode='r', bufsize=-1)`144145Переносимый интерфейс [`popen()`](https://python-all.ru/3.3/library/platform.html#platform.popen). Ищет рабочую реализацию popen, отдавая предпочтение `win32pipe.popen()`. На Windows NT `win32pipe.popen()` должна работать; на Windows 9x она зависает из-за ошибок в библиотеке MS C.146147Устарело с версии 3.3: Эта функция устарела. Используйте модуль [`subprocess`](https://python-all.ru/3.3/library/subprocess.html#module-subprocess). Обратите особое внимание на раздел [*Replacing Older Functions with the subprocess Module*](https://python-all.ru/3.3/library/subprocess.html#subprocess-replacements).148149## 16.15.4. Платформа Mac OS150151#### `platform.mac_ver(release='', versioninfo=('', '', ''), machine='')`152153Получает информацию о версии Mac OS и возвращает её в виде кортежа `(release, versioninfo, machine)`, где *versioninfo* является кортежем `(version, dev_stage, non_release_version)`.154155Записи, которые невозможно определить, устанавливаются в `''`. Все элементы кортежа являются строками.156157## 16.15.5. Платформы Unix158159#### `platform.dist(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...))`160161Это другое имя для [`linux_distribution()`](https://python-all.ru/3.3/library/platform.html#platform.linux_distribution).162163#### `platform.linux_distribution(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...), full_distribution_name=1)`164165Пытается определить имя дистрибутива Linux.166167`supported_dists` может быть задан для определения набора дистрибутивов Linux, которые следует искать. По умолчанию он представляет собой список поддерживаемых в настоящее время дистрибутивов Linux, идентифицируемых по имени файла выпуска.168169Если `full_distribution_name` имеет значение true (по умолчанию), возвращается полное название дистрибутива, полученное из ОС. В противном случае используется краткое имя из `supported_dists`.170171Возвращает кортеж `(distname,version,id)`, который по умолчанию принимает значения, переданные в качестве параметров. `id` – это элемент в скобках после номера версии. Обычно это кодовое имя версии.172173#### `platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=2048)`174175Пытается определить версию libc, с которой слинкован исполняемый файл (по умолчанию – интерпретатор Python). Возвращает кортеж строк `(lib, version)`, которые по умолчанию принимают заданные параметры в случае неудачи поиска.176177Обратите внимание, что эта функция обладает глубокими знаниями о том, как разные версии libc добавляют символы в исполняемый файл, и, вероятно, применима только к исполняемым файлам, скомпилированным с помощью **gcc**.178179Файл читается и сканируется блоками по *chunksize* байт.180