当前位置: 首页 > 面试题库 >

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

蔡鹏程
2023-03-14
问题内容

我需要一种方法,可以从shell内告诉shell处于哪种模式。

我尝试查看平台模块,但似乎只告诉您“有关可执行程序所使用的位架构和链接格式”的信息:尽管二进制文件编译为64位(我在OS X 10.6上运行),所以即使我使用此处介绍的方法强制使用32位模式,它似乎总是报告64 位。


问题答案:

更新:一种方法是看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.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

顺便说一句,你可能会想使用platform.architecture()它。不幸的是,其结果并不总是可靠的,特别是在OS X通用二进制文件的情况下。

$ 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


 类似资料:
  • 问题内容: 当我输入时,它给出以下输出。 从中我如何知道给定的操作系统是32位还是64位? 这在编写脚本时非常有用,例如:我要为哪种体系结构构建? 问题答案: 尝试。缺少它并输出: 否则,请键入以下内容 ,而不是Linux内核,而是CPU : 要么: 在“标志”参数下,您将看到各种值:请参阅“ / proc / cpuinfo中的标志是什么意思? ”其中一个名为:(x86-64:amd64,也称为

  • 问题内容: 我的电脑正在使用Windows 7 64位。但是将要部署我的jsp Web应用程序的服务器是32位。 我需要在PC上安装32位JDK / JRE才能进行开发吗?我正在使用Eclipse。 非常感谢你。 问题答案: 您绝对不需要安装32位JRE即可进行开发。您构建的Java代码不会跟踪您的64位。(我假设您没有使用JNI,这会使事情变得有些复杂。) 不过,您 可能 需要安装32位JRE进

  • 问题内容: 在Java中,是否保证int始终为32位,而长为64位,而不管体系结构是32位还是64位? 问题答案: Java是平台无关的。所以是32位,并且是64位的。

  • 问题内容: 在64位计算机上,Java中的int大小是32位还是64位? 问题答案: 32位。这是Java语言的功能之一,整数的大小不会随基础计算机而变化。请参阅规范的相关部分。

  • 问题内容: 我有一个jar,但不知道它是用于64位系统还是32位系统。如何找出来? 编辑:我有本机库依赖项。 问题答案: Java字节码是Java字节码,无论它是用32位还是64位JDK构建的,都没有办法解决。 我认为用32位或64位编译jar并没有什么区别。它应该与机器无关;除非您具有某些本机库依赖项,或者将Java代码直接编译为本机代码。

  • 问题内容: 我想知道x86和x64中的64位长吗? 问题答案: 是。Java 在任何JVM上都是64位,无一例外。所有Java原语类型都是完全可移植的,并且在所有实现中都具有固定的大小。