[python] 파이썬 쉘이 OS X에서 32 비트 또는 64 비트 모드로 실행되고 있는지 어떻게 알 수 있습니까?

쉘 내에서 쉘이 어떤 모드인지 알 수있는 방법이 필요합니다.

플랫폼 모듈을 살펴 보았지만 “실행 파일에 사용되는 비트 아키텍처 및 링크 형식”에 대해서만 알려줍니다. 바이너리는 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파이썬 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

BTW, 당신은 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


답변

터미널 / 명령 줄에서 Python 인터프리터를 시작할 때 다음과 같은 줄이 나타날 수도 있습니다.

Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32

어디는 [MSC v.1500 64 bit (AMD64)]64 비트 파이썬을 의미한다. 내 특정 설정에서 작동합니다.


답변

기본적으로 Matthew Marshall의 답변에 대한 변형 (std.library의 구조체 포함) :

import struct
print struct.calcsize("P") * 8


답변

ctypes를 사용하여 void 포인터의 크기를 얻으십시오.

import ctypes
print ctypes.sizeof(ctypes.c_voidp)

32 비트의 경우 4, 64 비트의 경우 8입니다.


답변

파이썬 콘솔 열기 :

import platform
platform.architecture()[0]

플랫폼에 따라 ’64bit’또는 ’32bit’가 표시되어야합니다.

또는 ( OS X 바이너리의 경우 ) :

import sys
sys.maxsize > 2**32
# it should display True in case of 64bit and False in case of 32bit


답변

프로그래밍 방식이 아닌 솔루션에 대해서는 활동 모니터를 확인하십시오. 64 비트 프로세스의 아키텍처를 “Intel (64 비트)”로 나열합니다.


답변

Centos Linux 시스템에서 다음을 수행했습니다.

1) Python 인터프리터를 시작했습니다 (2.6.6을 사용하고 있습니다).
2) 다음 코드를 실행하십시오.

import platform
print(platform.architecture())

그리고 그것은 나에게 주었다

(64bit, 'ELF')