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=0, terse=0) -
Возвращает строку, идентифицирующую базовую платформу с максимально возможной полезной информацией.
Выходной результат предназначен для чтения человеком, а не для машинного анализа. Он может выглядеть по-разному на разных платформах, и это сделано намеренно.
Если 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() -
Возвращает строку, идентифицирующую номер ревизии реализации Python SCM.
-
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'. Если значение определить невозможно, возвращается пустая строка.
-
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(). Также имена атрибутов отличаются для первых двух атрибутов;os.uname()называет ихsysnameиnodename.Элементы, которые невозможно определить, устанавливаются в
''.Изменено в версии 3.3: Результат изменён с кортежа на
namedtuple().
Платформа 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). Значения, которые невозможно определить, устанавливаются в значения по умолчанию, заданные в параметрах (все по умолчанию'').
Платформа 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).Элементы, которые невозможно определить, устанавливаются в
''. Все элементы кортежа являются строками.
Платформы 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— это строки, подходящие для представления пользователям. Программы должны использовать поля, такие какID,ID_LIKE,VERSION_ID, илиVARIANT_IDдля идентификации дистрибутивов Linux.Пример:
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.
© 2001–2023 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.10/library/platform.html