为了账号安全,请及时绑定邮箱和手机立即绑定

如何确定我的pythonshell是在OSX上以32位还是64位模式执行呢?

如何确定我的pythonshell是在OSX上以32位还是64位模式执行呢?

慕虎7371278 2019-07-05 10:48:26
如何确定我的pythonshell是在OSX上以32位还是64位模式执行呢?我需要一种方法来从shell内部判断shell的模式。我试着看着平台模块,但它似乎只告诉您“有关位结构和可执行文件所用的链接格式”:二进制文件被编译为64位(我运行在OSX10.6上),所以它似乎总是报告64位,即使我使用这些方法。在此描述强制32位模式)。
查看完整描述

3 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

更新:一种方法是查看sys.maxsize如文件所示这里:

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

sys.maxsize是在Python2.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

顺便说一句,你可能想用platform.architecture()为了这个。不幸的是,它的结果并不总是可靠的,特别是在OSX通用二进制文件的情况下.

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


查看完整回答
反对 回复 2019-07-05
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

在终端/命令行中启动Python解释器时,您可能还会看到如下所示的一行:

Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32

哪里[MSC v.1500 64 bit (AMD64)]意思是64位Python。适用于我的特殊设置。


查看完整回答
反对 回复 2019-07-05
  • 3 回答
  • 0 关注
  • 677 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信