最可靠方法是用sys.maxsize判断:若sys.maxsize > 232则为64位(值为263-1),否则为32位(值为2**31-1);platform.architecture()和struct.calcsize("P")也可辅助验证。
直接看 Python 解释器运行时的指针大小最可靠:如果 sys.maxsize > 2**32,说明是 64 位;否则是 32 位。
sys.maxsize 判断(推荐)这是最通用、跨平台的方式,不依赖操作系统命令或安装路径,只看 Python 运行时能处理的最大容器长度,本质反映指针位宽:
sys.maxsize 通常是 9223372036854775807(即 2**63 - 1)sys.maxsize 通常是 2147483647(即 2**31 - 1)执行以下代码即可判断:
import sys print(sys.maxsize > 2**32) # True 表示 64 位,False 表示 32 位
platform.architecture()
调用标准库 platform 模块获取解释器自身架构信息:
立即学习“Python免费学习笔记(深入)”;
import platform print(platform.architecture()) # 输出类似:('64bit', 'ELF') 或 ('32bit', 'PE')
注意:platform.architecture() 返回的是 Python 解释器本身的位数,不是操作系统位数。即使在 64 位 Windows 上运行 32 位 Python,这里也会显示 '32bit'。
struct.calcsize("P")
利用 C 指针类型 "P" 的字节长度来判断:
struct.calcsize("P") == 8 → 64 位(指针占 8 字节)struct.calcsize("P") == 4 → 32 位(指针占 4 字节)代码示例:
import struct
print(struct.calcsize("P")) # 输出 4 或 8
Windows 的 Program Files 和 Program Files (x86) 文件夹名仅表示安装位置惯例,不能用来判断 Python 位数。同样,Linux/macOS 的文件名或包管理器输出(如 python3.9)也不体现位数。唯一可信的是 Python 进程实际运行的架构。