python - 如何确定我的 python shell 是以 32 位还是 64 位执行的?

标签 python macos

我需要一种方法来从外壳内部判断外壳处于什么模式。

虽然我主要是 OS X 用户,但我也有兴趣了解其他平台。

我试过查看 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)

在 Windows 上,运行格式如下的相同命令:

python -c "import sys;print(\"%x\" % sys.maxsize, sys.maxsize > 2**32)"

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

顺便说一句,您可能很想为此使用 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

关于python - 如何确定我的 python shell 是以 32 位还是 64 位执行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1405913/

相关文章:

python - 三列A B C,当cumsum小于10时取A*B,然后取A*C

python app engine模型查询同组模型

python - 使用变量查询 Sqlite 数据库

cocoa - 阻止弹出窗口成为关键窗口

python - Pandas :标记连续值

python - 如何在PyQt 5.9中访问录音音量?

java - WinXP 和 Mac OS X 中的 MySql

python - 在 osx for django 的 virtualenv 中安装 mysql

ios - 将标签置于 ImageView 中心(Swift)

java - libGDX 项目无法加载库 liblwjgl.dylib