如何确定我的python shell是否在OS X上以32位或64位模式执行?

问题:

我需要一种方法来告诉shell中shell的什么模式。
我试过看platform模块,但似乎只是告诉你关于“可用的位架构和链接格式”:二进制编译为64位(我在OS X 10.6上运行),所以似乎总是报告64位,即使我使用方法described here强制32位模式)。

回答:

更新:
一种方法是查看sys.maxsize记录的here

$ python-32 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32)'
('7fffffff', False)
$ python-64 -c 'import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32)'
('7fffffffffffffff', True)

 sys.maxsize在Python 2.6中引入。如果您需要对旧系统进行测试,则这种稍微复杂的测试应该适用于所有Python 2和3版本:

$ python-32 -c 'import struct;print( 8 * struct.calcsize("P"))'
32
$ python-64 -c 'import struct;print( 8 * struct.calcsize("P"))'
64

BTW,您可能会尝试使用platform.architecture()来进行此操作。不幸的是,其结果并不总是可靠的,particularly in the case of OS X universal binaries

$ arch -x86_64 /usr/bin/python2.6 -c 'import sys,platform; print platform.architecture()[0], sys.maxsize > 2**32'
64bit True
$ arch -i386 /usr/bin/python2.6 -c 'import sys,platform; print platform.architecture()[0], sys.maxsize > 2**32'
64bit False

 
 翻译整理: codewenda.com
英文原文:stackoverflow

发表评论

电子邮件地址不会被公开。 必填项已用*标注

31 + = 33