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