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()¶
Возвращает строку, идентифицирующую версию SCM для реализации на Python.
- platform.python_version()¶
Возвращает версию Python в виде строки
'major.minor.patchlevel'
.Обратите внимание, что в отличие от Python
sys.version
, возвращаемое значение всегда будет включать patchlevel (по умолчанию оно равно 0).
- platform.python_version_tuple()¶
Возвращает версию Python в виде кортежа
(major, minor, patchlevel)
строк.Обратите внимание, что в отличие от Python
sys.version
, возвращаемое значение всегда будет включать patchlevel (по умолчанию оно равно'0'
).
- platform.release()¶
Возвращает системный релиз, например
'2.2.0'
или'NT'
. Если значение не может быть определено, возвращается пустая строка.
- platform.system()¶
Возвращает имя системы/OS, например
'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=('', '', ''))¶
Версия интерфейса для Python.
Возвращает кортеж
(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'
на многопроцессорных компьютерах. «Свободный» означает, что версия операционной системы не содержит отладочного кода. В нем также может быть указано «Проверено», что означает, что версия операционной системы использует отладочный код, то есть код, который проверяет аргументы, диапазоны и т.д.
- platform.win32_edition()¶
Возвращает строку, представляющую текущую версию Windows, или
None
, если значение не может быть определено. Возможные значения включают, но не ограничиваются ими'Enterprise'
,'IoTUAP'
,'ServerStandard'
, и'nanoserver'
.Добавлено в версии 3.8.
- platform.win32_is_iot()¶
Возвращает
True
, если версия Windows, возвращенная с помощьюwin32_edition()
, распознана как версия Интернета вещей.Добавлено в версии 3.8.
Платформа macOS¶
- platform.mac_ver(release='', versioninfo=('', '', ''), machine='')¶
Получите информацию о версии mac OS и верните ее в виде кортежа
(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
и верните его в виде dict. Файлos-release
имеет формат freedesktop.org standard и доступен в большинстве дистрибутивов 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.