我怎么能从壳内告诉壳处于什么模式?
我已经试着查看了平台模块,但它似乎只告诉您“用于可执行文件的位架构和链接格式”。我的二进制文件被编译为64位(我在OS X 10.6上运行),所以它似乎总是报告64位,即使我使用这里描述的方法强制32位模式。
我怎么能从壳内告诉壳处于什么模式?
我已经试着查看了平台模块,但它似乎只告诉您“用于可执行文件的位架构和链接格式”。我的二进制文件被编译为64位(我在OS X 10.6上运行),所以它似乎总是报告64位,即使我使用这里描述的方法强制32位模式。
当前回答
对于32位,它将返回32,对于64位,它将返回64
import struct
print(struct.calcsize("P") * 8)
其他回答
打开python控制台:
import platform
platform.architecture()[0]
它应该显示'64bit'或'32bit'根据您的平台。
或者(对于OS X二进制文件):
import sys
sys.maxsize > 2**32
# it should display True in case of 64bit and False in case of 32bit
根据abe32的回答,
import sys
n_bits = 32 << bool(sys.maxsize >> 32)
N_bits将有32或64位。
在命令行中执行python -VV。它应该返回版本。
对于非编程解决方案,请查看活动监视器。它将64位进程的体系结构列为“Intel(64位)”。
基本上是Matthew Marshall答案的变体(使用来自std.library的struct):
import struct
print struct.calcsize("P") * 8