平台—访问底层平台的标识数据

源代码: Lib/platform.py


Note

特定平台按字母 Sequences 列出,Unix 部分中包含 Linux。

Cross Platform

  • platform. architecture(* executable = sys.executable bits =“'' linkage =”''*)
    • 查询给定的可执行文件(默认为 Python 解释器二进制文件)以获取各种体系结构信息。

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

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

该Function依赖于系统的file命令来执行实际工作。在大多数(如果不是全部)Unix 平台和某些非 Unix 平台上,仅在可执行文件指向 Python 解释器时,此选项才可用。当不满足上述需求时,将使用合理的默认值。

Note

在 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 会使函数仅返回识别平台所需的绝对最小信息。

在版本 3.8 中进行了更改:在 macOS 上,该函数现在使用mac_ver(),如果它返回非空的发布字符串,则获取 macOS 版本而不是 darwin 版本。

  • platform. processor ( )
    • 返回(真实)处理器名称,例如'amdk6'

如果无法确定该值,则返回一个空字符串。请注意,许多平台不提供此信息,或仅返回与machine()相同的值。 NetBSD 执行此操作。

  • platform. python_build ( )

    • 返回一个 Tuples(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不同,返回值将始终包含补丁程序级别(默认为 0)。

  • platform. python_version_tuple ( )
    • 以字符串 Tuples(major, minor, patchlevel)的形式返回 Python 版本。

请注意,与 Python sys.version不同,返回值将始终包含补丁程序级别(默认为'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 ( )

请注意,这会添加第六个属性(processor),该属性在os.uname()结果中不存在。此外,前两个属性的属性名称不同; os.uname()分别命名为sysnamenodename

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

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

Java Platform

  • platform. java_ver(* release ='' vendor ='' vminfo =('''''') osinfo =('''' '')*)
    • Jython 的版本接口。

返回 Tuples(release, vendor, vminfo, osinfo),其中* vminfo 为 Tuples(vm_name, vm_release, vm_vendor) osinfo *为 Tuples(os_name, os_version, os_arch)。无法确定的值设置为作为参数给出的默认值(所有默认值均为'')。

Windows Platform

  • platform. win32_ver(* release ='' version ='' csd ='' ptype =''*)
    • 从 Windows 注册表中获取其他版本信息,并返回一个 Tuples(release, version, csd, ptype),这些 Tuples 涉及 os 发行版,版本号,CSD 级别(服务包)和 os 类型(多/单处理器)。

提示:* ptype *在单处理器 NT 计算机上为'Uniprocessor Free',在 multiprocessing 器计算机上为'Multiprocessor Free''Free'是指没有调试代码的 OS 版本。它还可以语句'Checked',这表示 os 版本使用调试代码,即用于检查参数,范围等的代码。

Note

此Function在安装 Mark Hammond 的win32all软件包时效果最佳,但在 Python 2.3 和更高版本上也是如此(在 Python 2.6 中添加了对此Function的支持)。它显然只能在 Win32 兼容平台上运行。

  • platform. win32_edition ( )
    • 返回表示当前 Windows 版本的字符串。可能的值包括但不限于'Enterprise''IoTUAP''ServerStandard''nanoserver'

3.8 版的新Function。

  • platform. win32_is_iot ( )
    • 如果win32_edition()返回的 Windows 版本被识别为 IoT 版本,则返回True

3.8 版的新Function。

Mac OS 平台

  • platform. mac_ver(* release ='' versioninfo =('''''') machine =''*)
    • 获取 Mac OS 版本信息,并以 Tuples(release, versioninfo, machine)的形式返回,其中* versioninfo *是 Tuples(version, dev_stage, non_release_version)

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

Unix Platforms

  • platform. libc_ver(* executable = sys.executable lib ='' version ='' chunksize = 16384 *)
    • try确定链接文件可执行文件(默认为 Python 解释器)的 libc 版本。返回字符串(lib, version)的 Tuples,如果查找失败,则默认为给定参数。

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

以* chunksize *个字节的块的形式读取和扫描文件。