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— это строки, подходящие для отображения пользователю. Программы должны использовать поля, такие как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–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.12/library/platform.html