Skip to main content

16.14. platform —访问底层平台的识别数据

源代码: Lib/platform.py


注解

以字母顺序列出的特定平台,Linux包含在Unix部分。

16.14.1. 跨平台

platform.architecture(executable=sys.executable, bits='', linkage='')

查询给定的可执行文件(默认为Python解释器二进制)以获取各种体系结构信息。

返回一个元组 (bits, linkage),它包含有关用于可执行文件的位结构和链接格式的信息。这两个值都作为字符串返回。

无法确定的值将按参数预设给定的返回。如果位被给定为 '',则 sizeof(pointer) (或Python版本<1.5.2的 sizeof(long))用作所支持的指针大小的指示符。

该功能依赖于系统的 file 命令来进行实际工作。这在大多数(如果不是全部)Unix平台和一些非Unix平台上可用,则只有当可执行文件指向Python解释器时。当不满足上述需要时使用合理的默认值。

注解

在Mac OS X(以及可能其他平台)上,可执行文件可以是包含多个体系结构的通用文件。

为了得到当前解释器的“64位”,查询 sys.maxsize 属性是更可靠的:

is_64bits = sys.maxsize > 2**32
platform.machine()

返回机器类型,例如 'i386'。如果无法确定该值,则返回空字符串。

platform.node()

返回计算机的网络名称(可能不完全限定!)。如果无法确定该值,则返回空字符串。

platform.platform(aliased=0, terse=0)

返回一个标识基础平台的单个字符串,尽可能多地提供有用的信息。

输出旨在是 人类可读 而不是机器可分析。它可能在不同的平台看起来不同,这是打算。

如果 aliased 为true,该函数将使用报告与其通用名称不同的系统名称的各种平台的别名,例如SunOS将报告为Solaris。 system_alias() 函数用于实现这一点。

terse 设置为true将使函数仅返回识别平台所需的绝对最小信息。

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()

以字符串 'major.minor.patchlevel' 返回Python版本。

注意,与Python sys.version 不同,返回值将始终包含patchlevel(它默认为0)。

platform.python_version_tuple()

返回Python版本作为字符串的TACLE (major, minor, patchlevel)

注意,与Python sys.version 不同,返回值将始终包含patchlevel(它默认为 '0')。

platform.release()

返回系统的释放,例如。 '2.2.0''NT' 如果无法确定该值,则返回空字符串。

platform.system()

返回系统/操作系统名称,例如 'Linux''Windows''Java'。如果无法确定该值,则返回空字符串。

platform.system_alias(system, release, version)

返回 (system, release, version) 别名到用于一些系统的公共营销名称。它在某些情况下也会对信息进行重新排序,否则会造成混乱。

platform.version()

返回系统的发布版本,例如 '#3 on degas'。如果无法确定该值,则返回空字符串。

platform.uname()

相当便携的uname接口。返回包含六个属性的 namedtuple()systemnodereleaseversionmachineprocessor

注意,这增加了在 os.uname() 结果中不存在的第六属性(processor)。此外,属性名称对于前两个属性是不同的; os.uname() 命名他们 sysnamenodename

不能确定的条目设置为 ''

在 3.3 版更改: 结果从元组更改为namedtuple。

16.14.2. 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)。无法确定的值设置为以参数形式给出的默认值(所有默认值均为 '')。

16.14.3. Windows平台

platform.win32_ver(release='', version='', csd='', ptype='')

从Windows注册表获取其他版本信息,并返回元组 (release, version, csd, ptype),引用OS版本,版本号,CSD级别(服务包)和操作系统类型(多/单处理器)。

作为提示:ptype 是单处理器NT机器上的 'Uniprocessor Free',以及多处理器机器上的 'Multiprocessor Free'‘Free’ 是指没有调试代码的操作系统版本。它也可以声明 ‘Checked’,这意味着操作系统版本使用调试代码,即检查参数,范围等的代码。

注解

此函数最适合安装Mark Hammond的 win32all 软件包,但也适用于Python 2.3及更高版本(支持在Python 2.6中添加)。它显然只能在Win32兼容平台上运行。

16.14.3.1. Win95/98具体

platform.popen(cmd, mode='r', bufsize=-1)

便携式 popen() 接口。找到一个工作popen实施喜欢 win32pipe.popen()。在Windows NT上,win32pipe.popen() 应该工作;在Windows 9x上,它挂起由于MS C库中的错误。

3.3 版后已移除: 此功能已过时。使用 subprocess 模块。特别检查 使用 subprocess 模块替换旧功能 部分。

16.14.4. Mac OS平台

platform.mac_ver(release='', versioninfo=('', '', ''), machine='')

获取Mac OS版本信息,并将其作为元组 (release, versioninfo, machine) 返回,其中 versioninfo 是元组 (version, dev_stage, non_release_version)

不能确定的条目设置为 ''。所有元组条目都是字符串。

16.14.5. UNIX平台

platform.dist(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...))

这是 linux_distribution() 的另一个名称。

自版本3.5以来已弃用,将在版本3.7中删除。

platform.linux_distribution(distname='', version='', id='', supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...), full_distribution_name=1)

尝试确定Linux操作系统分发名称的名称。

可以给定 supported_dists 来定义要查找的Linux分发集。它默认为由其发行文件名标识的当前支持的Linux发行版的列表。

如果 full_distribution_name 为true(默认值),则返回从操作系统读取的完整分布。否则使用从 supported_dists 取得的短名称。

返回一个元组 (distname,version,id),默认为作为参数给出的args。 id 是版本号后面的括号中的项。它通常是版本codename。

自版本3.5以来已弃用,将在版本3.7中删除。

platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=2048)

尝试确定libc版本,文件可执行文件(默认为Python解释器)链接到该版本。返回字符串 (lib, version) 的元组,如果查找失败,则默认使用给定的参数。

注意,这个函数非常了解不同的libc版本添加符号到可执行文件可能只适用于使用 gcc 编译的可执行文件。

chunksize 字节的大块读取和扫描文件。