15.15. platform — 访问底层平台的识别数据 — Python 文档
15.15. 平台 — 访问底层平台的识别数据
2.3 版中的新功能。
源代码: :source:`Lib/platform.py`
笔记
特定平台按字母顺序列出,Linux 包含在 Unix 部分。
15.15.1. 跨平台
- platform.architecture(executable=sys.executable, bits=, linkage=)
查询给定的可执行文件(默认为 Python 解释器二进制文件)以获取各种架构信息。
返回一个元组
(bits, linkage)
,其中包含有关位体系结构和用于可执行文件的链接格式的信息。 这两个值都作为字符串返回。无法确定的值将按照参数预设的给定返回。 如果位给出为
, 这
sizeof(pointer)
(或者sizeof(long)
在 Python 版本 < 1.5.2 上)用作支持的指针大小的指标。该函数依靠系统的
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 为真,则该函数将为各种平台使用别名,这些平台报告的系统名称与其通用名称不同,例如 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 分支的字符串。
2.6 版中的新功能。
- platform.python_implementation()
返回标识 Python 实现的字符串。 可能的返回值是:“CPython”、“IronPython”、“Jython”、“PyPy”。
2.6 版中的新功能。
- platform.python_revision()
返回标识 Python 实现 SCM 修订的字符串。
2.6 版中的新功能。
- platform.python_version()
以字符串
'major.minor.patchlevel'
的形式返回 Python 版本。请注意,与 Python
sys.version
不同,返回值将始终包含补丁级别(默认为 0)。
- platform.python_version_tuple()
以字符串的元组
(major, minor, patchlevel)
形式返回 Python 版本。请注意,与 Python
sys.version
不同,返回值将始终包含补丁级别(默认为'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 界面。 返回标识底层平台的字符串元组
(system, node, release, version, machine, processor)
。请注意,与 os.uname() 函数不同,这也将可能的处理器信息作为附加元组条目返回。
无法确定的条目设置为
。
15.15.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)
。 无法确定的值设置为作为参数给出的默认值(所有默认值都为)。
15.15.3. 视窗平台
- platform.win32_ver(release=, version=, csd=, ptype=)
从 Windows 注册表中获取其他版本信息,并返回一个元组
(release, version, csd, ptype)
,指的是操作系统版本、版本号、CSD 级别(服务包)和操作系统类型(多/单处理器)。作为提示:ptype 在单处理器 NT 机器上是
'Uniprocessor Free'
,在多处理器机器上是'Multiprocessor Free'
。 Free 是指没有调试代码的操作系统版本。 它还可以声明 Checked 这意味着操作系统版本使用调试代码,即 检查参数、范围等的代码。笔记
此函数最适合安装 Mark Hammond 的
win32all
包,但也适用于 Python 2.3 及更高版本(Python 2.6 中添加了对此的支持)。 它显然只能在 Win32 兼容平台上运行。
15.15.3.1. Win95/98 专用
- platform.popen(cmd, mode='r', bufsize=None)
- 便携式 popen() 接口。 找到更喜欢
win32pipe.popen()
的工作 popen 实现。 在 Windows NT 上,win32pipe.popen()
应该可以工作; 在 Windows 9x 上,它由于 MS C 库中的错误而挂起。
15.15.4. Mac 操作系统平台
- platform.mac_ver(release=, versioninfo=(, , ), machine=)
获取 Mac OS 版本信息并将其作为元组
(release, versioninfo, machine)
返回,其中 versioninfo 是元组(version, dev_stage, non_release_version)
。无法确定的条目设置为
。 所有元组条目都是字符串。
15.15.5. Unix平台
- platform.dist(distname=, version=, id=, supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...))
这是 linux_distribution() 现在提供的旧版本功能。 对于新代码,请使用 linux_distribution()。
两者之间的唯一区别是
dist()
总是返回取自supported_dists
参数的分布的短名称。自 2.6 版起已弃用。
- platform.linux_distribution(distname=, version=, id=, supported_dists=('SuSE', 'debian', 'redhat', 'mandrake', ...), full_distribution_name=1)
尝试确定 Linux 操作系统分发名称的名称。
可以给出
supported_dists
来定义要查找的 Linux 发行版集。 它默认为当前支持的 Linux 发行版列表,由其发布文件名标识。如果
full_distribution_name
为真(默认),则返回从操作系统读取的完整分布。 否则使用取自supported_dists
的短名称。返回一个元组
(distname,version,id)
,它默认为作为参数给出的 args。id
为版本号后括号内的项目。 它通常是版本代号。笔记
此函数自 Python 3.5 起已弃用,并在 Python 3.8 中删除。 请参阅替代方案,如 distro 包。
2.6 版中的新功能。
- platform.libc_ver(executable=sys.executable, lib=, version=, chunksize=2048)
尝试确定文件可执行文件(默认为 Python 解释器)所链接的 libc 版本。 返回字符串
(lib, version)
的元组,如果查找失败,则默认为给定参数。请注意,此函数非常了解不同的 libc 版本如何向可执行文件添加符号,可能仅适用于使用 gcc 编译的可执行文件。
以 chunksize 字节的块读取和扫描文件。