프로그래밍 언어/Python

파이썬 sheel이 32 비트 또는 64 비트에서 실행 중인지 확인하는 방법

Rateye 2021. 11. 19. 10:05
728x90
반응형
질문 : 파이썬 쉘이 32 비트 또는 64 비트에서 실행 중인지 어떻게 확인합니까?

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

주로 OS X 사용자이지만 다른 플랫폼에 대해서도 알고 싶습니다.

플랫폼 모듈을 살펴 보았지만 "비트 아키텍처와 실행 파일에 사용되는 연결 형식"에 대해서만 설명하는 것 같습니다. 바이너리는 64 비트로 컴파일되지만 OS X 10.6에서 실행 중입니다. 여기 에 설명 된 방법을 사용하여 32 비트 모드를 강제 사용하더라도 항상 64 비트를보고하는 것 같습니다.)

답변

한 가지 방법은 sys.maxsize 대로 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
출처 : https://stackoverflow.com/questions/1405913/how-do-i-determine-if-my-python-shell-is-executing-in-32bit-or-64bit
728x90
반응형