platform
——访问底层平台的识别数据¶
源代码: Lib/platform.py
注解
特定平台按字母顺序列出,Linux包含在Unix部分中。
跨平台¶
- platform.architecture(executable=sys.executable, bits='', linkage='')¶
查询给定的可执行文件(默认为python解释器二进制文件)以获取各种体系结构信息。
返回元组
(bits, linkage)
其中包含有关位体系结构和用于可执行文件的链接格式的信息。两个值都作为字符串返回。无法确定的值将按参数预设返回。如果位的给定为
''
, thesizeof(pointer)
(或)sizeof(long)
在python版本<1.5.2)上,用作受支持指针大小的指示器。功能依赖于系统的
file
命令来做实际的工作。这在大多数(如果不是所有的)UNIX平台和一些非UNIX平台上都可用,然后只有当可执行文件指向Python解释器时才可用。如果不满足上述需求,则使用合理的默认值。注解
在MacOSX(或者其他平台)上,可执行文件可能是包含多个体系结构的通用文件。
为了得到当前解释器的“64位”,查询
sys.maxsize
属性:is_64bits = sys.maxsize > 2**32
- platform.machine()¶
返回机器类型,例如
'i386'
. 如果无法确定值,则返回空字符串。
- platform.node()¶
返回计算机的网络名称(可能不是完全限定的!)。如果无法确定值,则返回空字符串。
- platform.platform(aliased=0, terse=0)¶
返回一个字符串,用尽可能多的有用信息标识基础平台。
输出的目的是 人类可读的 而不是机器可解析的。它在不同的平台上看起来可能不同,这是有意的。
如果 混叠的 如果为真,该函数将对报告不同于其公用名称的系统名称的各种平台使用别名,例如,SUNOS将报告为Solaris。这个
system_alias()
函数用于实现这一点。设置 简洁的 若为true,则函数只返回标识平台所需的绝对最小信息。
在 3.8 版更改: 在MacOS上,函数现在使用
mac_ver()
如果返回非空的发布字符串,则获取MacOS版本,而不是达尔文版本。
- platform.processor()¶
返回(实际)处理器名称,例如
'amdk6'
.如果无法确定值,则返回空字符串。请注意,许多平台不提供此信息,或者只是返回与
machine()
.NetBSD会这样做。
- platform.python_build()¶
返回元组
(buildno, builddate)
将python内部版本号和日期声明为字符串。
- platform.python_compiler()¶
返回一个标识用于编译Python的编译器的字符串。
- platform.python_branch()¶
返回标识Python实现SCM分支的字符串。
- platform.python_implementation()¶
返回标识Python实现的字符串。可能的返回值为:“cpython”、“ironpython”、“jython”、“pypy”。
- platform.python_revision()¶
返回标识Python实现SCM修订版的字符串。
- 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接口。返回A
namedtuple()
包含六个属性:system
,node
,release
,version
,machine
和processor
.注意,这会添加第六个属性 (
processor
)不存在于os.uname()
结果。另外,前两个属性的属性名不同;os.uname()
给他们起名sysname
和nodename
.无法确定的条目设置为
''
.在 3.3 版更改: 结果从元组更改为NamedDuple。
Java平台¶
- platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))¶
Jython的版本接口。
返回元组
(release, vendor, vminfo, osinfo)
具有 虚拟机信息 作为元组(vm_name, vm_release, vm_vendor)
和 奥西nfo 作为元组(os_name, os_version, os_arch)
. 无法确定的值将设置为作为参数给定的默认值(所有默认值均为''
)
Windows平台¶
- platform.win32_ver(release='', version='', csd='', ptype='')¶
从Windows注册表获取其他版本信息并返回元组
(release, version, csd, ptype)
参考操作系统版本、版本号、CSD级别(Service Pack)和操作系统类型(多/单处理器)。作为提示: P型 是
'Uniprocessor Free'
在单处理器NT机器和'Multiprocessor Free'
在多处理器机器上。这个 “自由” 指没有调试代码的操作系统版本。它也可以说 “核对” 这意味着操作系统版本使用调试代码,即检查参数、范围等的代码。
- platform.win32_edition()¶
返回表示当前Windows版本的字符串。可能的值包括但不限于
'Enterprise'
,'IoTUAP'
,'ServerStandard'
和'nanoserver'
.3.8 新版功能.
- platform.win32_is_iot()¶
返回
True
如果Windows版本由返回win32_edition()
被认为是物联网版。3.8 新版功能.
MAC操作系统平台¶
- platform.mac_ver(release='', versioninfo=('', '', ''), machine='')¶
获取Mac OS版本信息并将其作为元组返回
(release, versioninfo, machine)
具有 版本信息 作为元组(version, dev_stage, non_release_version)
.无法确定的条目设置为
''
. 所有元组项都是字符串。
UNIX平台¶
- platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=16384)¶
尝试确定文件可执行文件(默认为python解释器)所链接的libc版本。返回字符串的元组
(lib, version)
如果查找失败,则默认为给定参数。请注意,此函数非常了解不同的libc版本如何向可执行文件添加符号,可能只能用于使用 gcc .
文件被读取和扫描成块 chunksize 字节。
Linux平台¶
- platform.freedesktop_os_release()¶
从获取操作系统标识
os-release
归档并将其作为字典退回。这个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 新版功能.