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

源代码: Lib/platform.py

注意

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

16.14.1. Cross Platform

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

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

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

无法确定的值按参数预设给定的返回。如果 bits 为'',则用 sizeof(pointer)(在 < 1.5.2 的 Python 版本上为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)

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

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

如果别名为真,则函数将为报告与其通用名称不同的系统名称的各种平台使用别名,例如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()

返回字符串的tuple (major, minor, patchlevel)的Python版本。

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

platform.release()

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

platform.system()

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

platform.system_alias(system, release, version)

Returns (system, release, version) aliased to common marketing names used for some systems. 它在某些情况下也会对信息进行重新排序,否则会造成混乱。

platform.version()

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

platform.uname()

相当便携的uname接口。Returns a namedtuple() containing six attributes: system, node, release, version, machine, and processor.

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

无法确定的条目设置为''

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

16.14.2. Java Platform

platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))

Jython的版本接口。

Returns a tuple (release, vendor, vminfo, osinfo) with vminfo being a tuple (vm_name, vm_release, vm_vendor) and osinfo being a tuple (os_name, os_version, os_arch). 无法确定的值设置为以参数形式给出的默认值(所有默认值均为'')。

16.14.3. Windows Platform

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

从Windows注册表获取其他版本信息,并返回元组(发布, 版本, csd, ptype) t4>指OS版本,版本号,CSD级别(服务封装)和OS类型(多/单处理器)。

As a hint: ptype is 'Uniprocessor Free' on single processor NT machines and 'Multiprocessor Free' on multi processor machines. 'Free'是指没有调试代码的操作系统版本。它也可以表示'Checked',这意味着操作系统版本使用调试代码,即检查参数,范围等的代码。

注意

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

16.14.3.1. Win95/98 specific

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

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

自版本3.3后已弃用:此函数已过时。使用subprocess模块。特别检查Replacing Older Functions with the subprocess Module部分。

16.14.4. Mac OS Platform

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

Get Mac OS version information and return it as tuple (release, versioninfo, machine) with versioninfo being a tuple (version, dev_stage, non_release_version).

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

16.14.5. Unix Platforms

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是版本号后面的括号中的项目。它通常是版本代号。

自版本3.5起已弃用,将在版本3.7中移除。

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

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

请注意,虽然此函数非常了解不同的libc版本如何向可执行文件添加符号,但可能只适用于使用gcc编译的可执行文件。

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