我无法find任何命令来检查我的Python是编译为32位系统或64位系统。
我试过了
它只会告诉版本
另外,当我去python下载网站,他们有一个版本的Python for Linux,但两个版本的Mac即32位和64位。
对于Python 2.6及更高版本,您可以使用sys.maxsize
如下所述:
import sys is_64bits = sys.maxsize > 2**32
更新:我注意到,我没有真正回答提出的问题。 虽然上面的测试能够准确地告诉你解释器是在32位还是在64位体系结构中运行,但它并没有也不能回答这个解释器是为什么构建的完整体系结构的问题并且可以运行。正如在问题中指出的那样,这对于Mac OS X通用可执行文件来说很重要,其中一个可执行文件可能包含多个体系结构的代码。 回答这个问题的一个方法是使用操作系统file
命令。 在大多数系统上,它将报告可执行文件的支持体系结构。 以下是在大多数系统上从shell命令行的一行内容:
file -L $(python -c 'import sys; print(sys.executable)')
使用OS X 10.6上的默认系统Python,输出是:
/usr/bin/python: Mach-O universal binary with 3 architectures /usr/bin/python (for architecture x86_64): Mach-O 64-bit executable x86_64 /usr/bin/python (for architecture i386): Mach-O executable i386 /usr/bin/python (for architecture ppc7400): Mach-O executable ppc
在一个Linux系统上:
/usr/bin/python: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, stripped
顺便说一下,这是一个为什么platform
不可靠的例子。 再次在OS X 10.6上使用系统Python:
$ 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
import platform platform.architecture()[0] #'32bit'
打开cmd然后键入python然后下面两行
导入平台
platform.architecture()