【问题标题】:Is there a reliable way to determine the system CPU architecture using Python? [duplicate]有没有可靠的方法来使用 Python 确定系统 CPU 架构? [复制]
【发布时间】:2011-11-21 10:15:02
【问题描述】:

可能重复:
How can I return system information in Python?

例如,查看 Solaris 是 Solaris X86 还是 Solaris SPARC?

【问题讨论】:

标签: python architecture operating-system


【解决方案1】:
>>> import platform
>>> platform.system()
'Darwin'
>>> platform.processor()
'i386'
>>> platform.platform()
'Darwin-10.8.0-i386-64bit'
>>> platform.machine()
'i386'
>>> platform.version()
'Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386'
>>> platform.uname()
('Darwin', 'Hostname.local', '10.8.0', 'Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386', 'i386', 'i386')

【讨论】:

    【解决方案2】:

    我使用了以下内容:

    >>> import platform
    >>> platform.uname()
    ('Darwin', 'Matthew-Rankins-MacBook-Pro.local', '10.8.0', 
    'Darwin Kernel Version 10.8.0: Tue Jun  7 16:32:41 PDT 2011; 
    root:xnu-1504.15.3~1/RELEASE_X86_64', 'x86_64', 'i386')
    >>> 
    

    来自Python platform documentation

    platform.uname()

    相当便携的 uname 界面。返回标识底层平台的字符串元组(系统、节点、版本、版本、机器、处理器)。

    请注意,与 os.uname() 函数不同,它还返回可能的处理器信息作为附加元组条目。

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

    【讨论】:

    • 成功了!非常感谢您的帮助!!
    • 运行 Mac OS 11.1 的 M1 MacBook Air 返回错误信息。这就是它返回的内容:('Darwin', 'MacBook-Air.local', '20.2.0', 'Darwin Kernel Version 20.2.0: Wed Dec 2 20:40:21 PST 2020; root:xnu-7195.60. 75~1/RELEASE_ARM64_T8101', 'x86_64', 'i386')
    • 看起来 Python 二进制文件的架构会影响 platform.uname() 的结果。 RELEASE 之后的信息可用于可靠地为您提供平台架构。
    • 在 macOS 上,如果调用它的进程通过 Rosetta 运行,则 uname machineprocessor 即使在 ARM 上也会返回 x86。您将需要 uname 元组的 version 部分(或直接调用 platform.version())。在 Intel 上,您应该看到 RELEASE_X86_64,在 Apple Silicon 上,您应该类似于 @user1766438 发布的内容 - RELEASE_ARM64'ARM' in platform.uname().version 或类似的应该在 macOS 上作为 Python 架构检查。否则 subprocess'ing sysctl machdep.cpu.brand_string 可能是您的下一个最佳选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 2015-11-07
    • 1970-01-01
    • 2016-01-18
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多