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 (и, возможно, на других платформах) исполняемые файлы могут быть универсальными файлами, содержащими несколько архитектур.
Для получения информации о разрядности текущего интерпретатора надёжнее обратиться к атрибуту
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, возвращаемое значение всегда включает номер патча (по умолчанию 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 и дистрибутивы на его основе.Возникает исключение
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.11/library/platform.html