我怎么能从壳内告诉壳处于什么模式?
我已经试着查看了平台模块,但它似乎只告诉您“用于可执行文件的位架构和链接格式”。我的二进制文件被编译为64位(我在OS X 10.6上运行),所以它似乎总是报告64位,即使我使用这里描述的方法强制32位模式。
我怎么能从壳内告诉壳处于什么模式?
我已经试着查看了平台模块,但它似乎只告诉您“用于可执行文件的位架构和链接格式”。我的二进制文件被编译为64位(我在OS X 10.6上运行),所以它似乎总是报告64位,即使我使用这里描述的方法强制32位模式。
当前回答
试试这个:
import platform
platform.architecture()
其他回答
当在终端/命令行中启动Python解释器时,你可能还会看到这样一行:
win32上的Python 2.7.2(默认,2011年6月12日,14:24:46)[MSC v.1500 64位(AMD64)]
其中[MSC v.1500 64位(AMD64)]表示64位Python。 适用于我的特定设置。
在我的Centos Linux系统上,我做了以下操作: 1)启动Python解释器(我使用2.6.6) 2)运行如下代码:
import platform
print(platform.architecture())
它给了我
(64bit, 'ELF')
对于32位,它将返回32,对于64位,它将返回64
import struct
print(struct.calcsize("P") * 8)
对于非编程解决方案,请查看活动监视器。它将64位进程的体系结构列为“Intel(64位)”。
struct.calcsize("P")返回存储单个指针所需的字节大小。在32位系统上,它将返回4个字节。在64位系统上,它将返回8个字节。
因此,如果你运行的是32位的python,则返回32;如果你运行的是64位的python,则返回64:
Python 2
import struct;print struct.calcsize("P") * 8
Python 3
import struct;print(struct.calcsize("P") * 8)