最可靠方法是用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 运行时能处理的最大容器长度,本质反映指针位宽:
- 在 64 位 Python 中,
sys.maxsize通常是9223372036854775807(即2**63 - 1) - 在 32 位 Python 中,
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 进程实际运行的架构。











