使用哪个命令来检查python是64位还是32位
我无法找到任何命令来检查我的python是否为32位系统或64位系统编译。使用哪个命令来检查python是64位还是32位
我试图
蟒蛇
,它只是告诉版本
而且当我去蟒蛇下载网站,他们有蟒蛇的一个版本的Linux,但两个版本的Mac即32位和64位。
对于Python 2.6及以上版本,你可以使用sys.maxsize
作为记录here:
import sys
is_64bits = sys.maxsize > 2**32
更新:我注意到,我并没有真正回答提出的问题。虽然上面的测试确实可以告诉你解释器是在32位还是在64位体系结构中运行,但它并没有也不能回答这个解释器是为什么构建的完整体系结构的问题并可以运行。正如问题中指出的那样,这对于例如Mac OS X通用可执行文件很重要,其中一个可执行文件可能包含多个体系结构的代码。回答该问题的一种方法是使用操作系统file
命令。在大多数系统上,它会报告可执行文件的支持体系结构。以下是如何做到这一点的一条线从大多数系统shell命令行:
file -L $(python -c 'import sys; print(sys.executable)')
使用缺省的系统的Python在OS X 10.6,输出的是:
/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 ctypes',并检查'ctypes.sizeof(ctypes.c_void_p)'的输出对于32位为'4'字节,对于64位系统为'8')。 – Breakthrough 2016-06-05 08:27:53
sys是一个内置模块,并且始终存在。导入和使用ctypes通常更昂贵,并可能在某些平台上失败。 – 2016-06-05 09:22:10
import platform
platform.architecture()[0]
#'32bit'
对不起,正如当前Python平台命令文档中所述,platform.architecture测试在所有平台上执行时都不可靠,特别是在OS X通用版本(包含32位和64位版本)如OP所要求的那样。它也不回答OP提出的问题,正如我在更新的答案中提到的那样。 – 2012-08-21 18:47:47
我没有意识到这一点。谢谢你指出! – Bentley4 2012-08-21 20:18:00
开放CMD 然后键入 蟒 然后将以下两行
进口平台
平台.architecture()
哪个下载站点? python.org下载站点(http://www.python.org/download/)不提供Linux的二进制安装程序,只提供Mac OS X和Windows。 – 2011-05-24 08:59:31
我在说那个网站,我下载了tar.bz2文件。我在想,对于64位,我将有差异tar文件或其相同 – user2134226 2011-05-24 09:04:06
只是一个提醒。大多数Linux发行版都默认安装了python,如果它不是你想要的版本,你可以随你的软件包管理器使用不同的版本。从头开始构建可能会破坏默认的Python安装并影响系统功能。 – 2011-05-24 09:19:34