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

platform.md

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

1> **Источник:** https://python-all.ru/2.7/library/platform.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 15.15. [`platform`](https://python-all.ru/2.7/library/platform.html#module-platform) – Доступ к идентификационным данным базовой платформы89Новое в версии 2.3.1011**Исходный код:** [Lib/platform.py](https://python-all.ru/src/2.7/Lib/platform.py)1213---1415> **Примечание**16>17> Конкретные платформы перечислены в алфавитном порядке, Linux включён в раздел Unix.1819## 15.15.1. Кроссплатформенная2021#### `platform.architecture(executable=sys.executable, bits='', linkage='')`2223Запрашивает у указанного исполняемого файла (по умолчанию – двоичный файл интерпретатора Python) различные сведения об архитектуре.2425Возвращает кортеж `(bits, linkage)`, содержащий информацию о битовой архитектуре и формате компоновки, используемом для исполняемого файла. Оба значения возвращаются в виде строк.2627Значения, которые не удаётся определить, возвращаются в соответствии с настройками параметров по умолчанию. Если bits задан как `''`, то `sizeof(pointer)` (или `sizeof(long)` для Python версии \< 1.5.2) используется как показатель поддерживаемого размера указателя.2829Функция использует системную команду `file` для выполнения работы. Она доступна на большинстве (если не на всех) Unix-платформ и некоторых не-Unix-платформах, но только если исполняемый файл указывает на интерпретатор Python. Если указанные условия не выполняются, используются разумные значения по умолчанию.3031> **Примечание**32>33> На Mac OS X (и, возможно, на других платформах) исполняемые файлы могут быть универсальными файлами, содержащими несколько архитектур.34>35> Чтобы получить сведения о «64-битности» текущего интерпретатора, надёжнее запросить атрибут [`sys.maxsize`](https://python-all.ru/2.7/library/sys.html#sys.maxsize):36>37> ```python38> is_64bits = sys.maxsize > 2**3239> ```4041#### `platform.machine()`4243Возвращает тип машины, например `'i386'`. Возвращается пустая строка, если значение не удаётся определить.4445#### `platform.node()`4647Возвращает сетевое имя компьютера (может быть не полностью определённым!). Возвращается пустая строка, если значение не удаётся определить.4849#### `platform.platform(aliased=0, terse=0)`5051Возвращает одну строку, идентифицирующую базовую платформу с максимально возможным количеством полезной информации.5253Результат предназначен для *чтения человеком*, а не для машинного разбора. Он может выглядеть по-разному на разных платформах, и это предусмотрено.5455Если *aliased* равно true, функция будет использовать псевдонимы для различных платформ, которые сообщают системные имена, отличающиеся от общеупотребительных; например, SunOS будет отображаться как Solaris. Для реализации используется функция [`system_alias()`](https://python-all.ru/2.7/library/platform.html#platform.system_alias).5657Установка *terse* в true заставляет функцию возвращать только абсолютный минимум информации, необходимый для идентификации платформы.5859#### `platform.processor()`6061Возвращает (настоящее) имя процессора, например `'amdk6'`.6263Возвращается пустая строка, если значение не удаётся определить. Обратите внимание, что многие платформы не предоставляют эту информацию или просто возвращают то же значение, что и для [`machine()`](https://python-all.ru/2.7/library/platform.html#platform.machine). NetBSD делает это.6465#### `platform.python_build()`6667Возвращает кортеж `(buildno, builddate)`, содержащий номер сборки Python и дату в виде строк.6869#### `platform.python_compiler()`7071Возвращает строку, идентифицирующую компилятор, использованный для компиляции Python.7273#### `platform.python_branch()`7475Возвращает строку, идентифицирующую ветку SCM реализации Python.7677Новое в версии 2.6.7879#### `platform.python_implementation()`8081Возвращает строку, идентифицирующую реализацию Python. Возможные возвращаемые значения: 'CPython', 'IronPython', 'Jython', 'PyPy'.8283Новое в версии 2.6.8485#### `platform.python_revision()`8687Возвращает строку, идентифицирующую ревизию SCM реализации Python.8889Новое в версии 2.6.9091#### `platform.python_version()`9293Возвращает версию Python в виде строки `'major.minor.patchlevel'`.9495Обратите внимание, что, в отличие от Python `sys.version`, возвращаемое значение всегда содержит номер патча (по умолчанию 0).9697#### `platform.python_version_tuple()`9899Возвращает версию Python в виде кортежа строк `(major, minor, patchlevel)`.100101Обратите внимание, что, в отличие от Python `sys.version`, возвращаемое значение всегда содержит номер патча (по умолчанию `'0'`).102103#### `platform.release()`104105Возвращает релиз системы, например `'2.2.0'` или `'NT'` Если значение не удается определить, возвращается пустая строка.106107#### `platform.system()`108109Возвращает имя системы/ОС, например `'Linux'`, `'Windows'` или `'Java'`. Пустая\\nстрока возвращается, если значение не удаётся определить.110111#### `platform.system_alias(system, release, version)`112113Возвращает `(system, release, version)`, преобразованный в распространённые маркетинговые названия, используемые для некоторых систем. Также в некоторых случаях информация переупорядочивается, чтобы избежать путаницы.114115#### `platform.version()`116117Возвращает версию релиза системы, например `'#3 on degas'`. Если значение не удаётся определить, возвращается пустая строка.118119#### `platform.uname()`120121Достаточно переносимый интерфейс uname. Возвращает кортеж строк `(system, node, release, version, machine, processor)`, идентифицирующих базовую платформу.122123Обратите внимание, что, в отличие от функции [`os.uname()`](https://python-all.ru/2.7/library/os.html#os.uname), эта функция также возвращает возможную информацию о процессоре в качестве дополнительного элемента кортежа.124125Записи, которые не удаётся определить, устанавливаются в `''`.126127## 15.15.2. Платформа Java128129#### `platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))`130131Интерфейс версии для Jython.132133Возвращает кортеж `(release, vendor, vminfo, osinfo)`, где *vminfo* – это кортеж `(vm_name, vm_release, vm_vendor)`, а *osinfo* – кортеж `(os_name, os_version, os_arch)`. Значения, которые невозможно определить, устанавливаются в значения по умолчанию, заданные параметрами (все по умолчанию равны `''`).134135## 15.15.3. Платформа Windows136137#### `platform.win32_ver(release='', version='', csd='', ptype='')`138139Получает дополнительную информацию о версии из реестра Windows и возвращает кортеж `(release, version, csd, ptype)`, содержащий релиз ОС, номер версии, уровень CSD (пакет обновления) и тип ОС (многопроцессорная/однопроцессорная).140141В качестве подсказки: *ptype* равен `'Uniprocessor Free'` на однопроцессорных машинах NT и `'Multiprocessor Free'` на многопроцессорных. *‘Free’* относится к версии ОС, свободной от отладочного кода. Также может быть указано *‘Checked’*, что означает, что версия ОС использует отладочный код, т.е. код, проверяющий аргументы, диапазоны и т.д.142143> **Примечание**144>145> Эта функция лучше всего работает с установленным Mark Hammond’s `win32all` пакетом, но также на Python 2.3 и новее (поддержка этого была добавлена в Python 2.6). Она, очевидно, работает только на платформах, совместимых с Win32.146147### 15.15.3.1. Специфичное для Win95/98148149#### `platform.popen(cmd, mode='r', bufsize=None)`150151Переносимый интерфейс [`popen()`](https://python-all.ru/2.7/library/platform.html#platform.popen). Найдите работающую реализацию popen, предпочитая `win32pipe.popen()`. В Windows NT `win32pipe.popen()` должна работать; в Windows 9x она зависает из-за ошибок в библиотеке MS C.152153## 15.15.4. Платформа Mac OS154155#### `platform.mac_ver(release='', versioninfo=('', '', ''), machine='')`156157Получает информацию о версии Mac OS и возвращает её в виде кортежа `(release, versioninfo, machine)`, причём *versioninfo* – это кортеж `(version, dev_stage, non_release_version)`.158159Записи, которые невозможно определить, устанавливаются в `''`. Все элементы кортежа являются строками.160161## 15.15.5. Платформы Unix162163#### `platform.dist(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...))`164165Это старая версия функциональности, которая теперь предоставляется [`linux_distribution()`](https://python-all.ru/2.7/library/platform.html#platform.linux_distribution). Для нового кода используйте [`linux_distribution()`](https://python-all.ru/2.7/library/platform.html#platform.linux_distribution).166167Единственное различие между ними в том, что `dist()` всегда возвращает короткое имя дистрибутива, взятое из параметра `supported_dists`.168169Устарело с версии 2.6.170171#### `platform.linux_distribution(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...), full_distribution_name=1)`172173Пытается определить имя дистрибутива Linux.174175`supported_dists` может быть задан для определения набора дистрибутивов Linux для поиска. По умолчанию используется список текущих поддерживаемых дистрибутивов Linux, идентифицируемых по имени файла релиза.176177Если `full_distribution_name` имеет значение true (по умолчанию), возвращается полное имя дистрибутива, прочитанное из ОС. В противном случае используется короткое имя, взятое из `supported_dists`.178179Возвращает кортеж `(distname,version,id)`, который по умолчанию соответствует аргументам, переданным в качестве параметров. `id` – это элемент в скобках после номера версии. Обычно это кодовое имя версии.180181> **Примечание**182>183> Эта функция устарела с Python 3.5 и удалена в Python 3.8. В качестве альтернативы используйте пакет [distro](https://python-all.ru/2.7/library/platform.html).184185Новое в версии 2.6.186187#### `platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=2048)`188189Пытается определить версию libc, с которой слинкован исполняемый файл (по умолчанию интерпретатор Python). Возвращает кортеж строк `(lib, version)`, которые по умолчанию равны переданным параметрам, если поиск не удался.190191Обратите внимание, что эта функция обладает глубокими знаниями о том, как разные версии libc добавляют символы в исполняемый файл, и, вероятно, применима только к исполняемым файлам, скомпилированным с помощью **gcc**.192193Файл читается и сканируется блоками по *chunksize* байт.194