我找不到任何命令来检查我的Python编译成了32位系统还是64位系统。
我尝试了:
python
但它只告诉版本号。
当我去Python下载网站时,他们为Linux提供了一个版本的Python,但为Mac提供了两个版本,即32位和64位。
我找不到任何命令来检查我的Python编译成了32位系统还是64位系统。
我尝试了:
python
但它只告诉版本号。
当我去Python下载网站时,他们为Linux提供了一个版本的Python,但为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 ctypes
,并检查 ctypes.sizeof (ctypes.c_void_p)
的输出(在 32 位系统中将为 4
字节,在 64 位系统中将为 8
字节)。 - Breakthroughpython -m pip install your.whl
- 不知道为什么,但是有效。另外,更新pip(作为模块)和setuptools(需要管理员权限)。 - frenzyimport platform
platform.architecture()[0]
#'32bit'
platform
命令,platform.architecture
测试在所有平台上执行时都是不可靠的,特别是在OP所询问的同时具有32位和64位架构的OS X通用版本上。 此外,正如我在更新的回答中所指出的那样,它也无法回答OP提出的问题。 - Ned Deily首先,打开命令提示符并输入
$ python
>>> import platform
>>> platform.architecture()
在Linux控制台中输入:
- 如果您想通过使用其运行命令来检查应用程序是否具有64位或32位架构:
type -p <command_to_run_application> | xargs readlink -f | xargs file -b | sed 's/, /\n/g' | sed -n 2p
file -b <full_path_to_an_application> | sed 's/, /\n/g' | sed -n 2p
type -p python3 | xargs readlink -f | xargs file -b | sed 's/, /\n/g' | sed -n 2p
file -b /usr/bin/python3.5 | sed 's/, /\n/g' | sed -n 2p
x86-64
或者
Intel 80386
或者
ARM
或其他。