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()
, если она возвращает непустую строку release, чтобы получить версию 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
, возвращаемое значение всегда будет включать уровень патча (по умолчанию он равен 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
и вернуть его в виде 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.