我怎么能从壳内告诉壳处于什么模式?

我已经试着查看了平台模块,但它似乎只告诉您“用于可执行文件的位架构和链接格式”。我的二进制文件被编译为64位(我在OS X 10.6上运行),所以它似乎总是报告64位,即使我使用这里描述的方法强制32位模式。


当前回答

Windows 10操作系统

打开cmd终端,输入如下图所示的>python启动python解释器

如果解释器信息在开始时包含AMD64,则为64位,否则为32位。

其他回答

打开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

在命令行中执行python -VV。它应该返回版本。

基本上是Matthew Marshall答案的变体(使用来自std.library的struct):

import struct
print struct.calcsize("P") * 8

Platform.architecture()是有问题的(而且昂贵)。

方便地测试sys。maxsize > 2**32自Py2.6。

这是对实际(默认)指针大小的可靠测试,至少自Py2.3以来是兼容的:struct.calcsize('P') == 8。另外:ctypes.sizeof(ctypes.c_void_p) == 8。

注意:可以有gcc选项-mx32左右的构建,它们是64位架构应用程序,但默认使用32位指针(节省内存和速度)。的系统。maxsize = ssize_t'可能并不严格代表C指针的大小(通常是2**31 - 1)。有些系统对代码和数据有不同的指针大小,需要澄清的是,区分“32位模式还是64位模式”的目的究竟是什么?

Windows 10操作系统

打开cmd终端,输入如下图所示的>python启动python解释器

如果解释器信息在开始时包含AMD64,则为64位,否则为32位。