如何判断Python内核是运行在32位还是64位模式?

13 投票
6 回答
15460 浏览
提问于 2025-04-17 00:12

我在Linux、Mac OS和Windows上运行的是Python 2.6,现在想知道操作系统是32位还是64位。有没有简单的方法可以做到这一点?

我试过用platform.machine(),但在Windows上这个方法不太好使。

我还试过platform.architecture(),但是在64位Windows上用32位的Python运行时,这个方法也不管用。

注意:看起来Python 2.7修复了这个问题,让platform.architecture()能正常工作。不过,我现在需要用的是Python 2.6。

(补充:跟一些人聊过后,听说似乎没有一个可靠的纯Python方法来判断这个,除非使用一些不太好的技巧。我只是想知道大家在用Python 2.6的项目中用过哪些不太好的技巧。例如,在Windows上,可能需要查看PROCESSOR_ARCHITEW6432这个环境变量,检查一下AMD64。)

6 个回答

5
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform
>>> platform.uname()[4]
'AMD64'

这是在64位的Windows操作系统上使用32位的Python。

7

在编程中,有时候我们会遇到一些问题,想要找到解决办法。比如说,有人可能在使用某个工具或库时,遇到了错误或者不明白的地方。这时候,大家通常会去一个叫StackOverflow的网站上提问,那里有很多经验丰富的程序员会帮忙解答。

在提问时,最好能把问题描述得清楚一些,比如说你在做什么,遇到了什么具体的错误,或者你希望实现什么功能。这样别人才能更好地理解你的问题,给出有效的建议。

另外,提供一些相关的代码片段也是很有帮助的,这样别人可以更直观地看到你遇到的问题是什么。比如,你可以把出错的代码放在一个代码块里,像这样:

>>> import platform
>>> platform.architecture()
('32bit', 'ELF')

总之,提问时要尽量详细和清晰,这样才能更快地找到解决方案。

8

关于如何解决问题7860,你有什么想法呢?

import os
import sys
import platform

def machine():
    """Return type of machine."""
    if os.name == 'nt' and sys.version_info[:2] < (2,7):
        return os.environ.get("PROCESSOR_ARCHITEW6432", 
               os.environ.get('PROCESSOR_ARCHITECTURE', ''))
    else:
        return platform.machine()

def os_bits(machine=machine()):
    """Return bitness of operating system, or None if unknown."""
    machine2bits = {'AMD64': 64, 'x86_64': 64, 'i386': 32, 'x86': 32}
    return machine2bits.get(machine, None)

print (os_bits())

撰写回答