2009-12-03 4 views
73

가능한 중복은 :
How do I determine if my python shell is executing in 32bit or 64bit mode?파이썬이 64 비트 응용 프로그램으로 실행되고 있는지 어떻게 알 수 있습니까?

나는 Windows 레지스트리에 몇 가지 작업을하고 있어요. 파이썬을 32 비트 또는 64 비트로 실행하는지 여부에 따라 키 값이 달라집니다. 파이썬이 32 비트 응용 프로그램과 달리 64 비트 응용 프로그램으로 실행되고 있는지 어떻게 알 수 있습니까?

참고 : 32 비트/64 비트 Windows 감지에 관심이 없습니다. 단지 파이썬 플랫폼입니다. Python docs에서

+3

중복으로 표시된 질문은 OSX에서 타겟팅됩니다.이 질문은 다릅니다. 다시 열어 투표 – CharlesB

답변

130
import platform 
platform.architecture() 

:

는 다양한 아키텍처 정보를 (파이썬 인터프리터 바이너리 기본값 ) 지정된 실행 파일을 조회합니다.

비트 아키텍처에 대한 정보가 포함 된 튜플 (비트, 연결)을 반환하고 실행 파일에 연결 형식 을 사용합니다. 두 값 모두 이 문자열로 반환됩니다.

+4

신뢰할 수 없습니다 ... http://stackoverflow.com/a/12057504/156755 – Basic

+2

누군가가 2017에 대한 업데이 트를주십시오 수 있습니다. 그래서 모든 놈들을 혼란스럽게합니다. 'sys.maxsize'는 오늘 갈 수있는 올바른 방법입니까, 아니면'platform.architecture()'가 OS X, Win, Linux에서 안정적으로 작동합니까? –

49

는 일부 플랫폼에서 작동 할 수 있지만, platform.architecture 항상 파이썬은 32 비트 또는 64 비트에서 실행되고 있는지 확인하기 위해 신뢰할 수있는 방법 아님을주의해야합니다. 특히, 일부 OS X 다중 아키텍처 빌드에서는 아래 예와 같이 동일한 실행 파일이 두 모드에서 실행될 수 있습니다. 가장 안전한 다중 플랫폼 접근법은 Python 2.6, 2.7, Python 3.x에서 sys.maxsize을 테스트하는 것입니다.

$ arch -i386 /usr/local/bin/python2.7 
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import platform, sys 
>>> platform.architecture(), sys.maxsize 
(('64bit', ''), 2147483647) 
>>> ^D 
$ arch -x86_64 /usr/local/bin/python2.7 
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import platform, sys 
>>> platform.architecture(), sys.maxsize 
(('64bit', ''), 9223372036854775807) 
+0

세부 사항에 대한 멋진 감사. –

+0

재미있는 잡았다. 그런데 그 냄새는 버그 같아. 그런 식으로 일하기로되어 있습니까? –

+2

나는 그것을 버그라고 생각할 것이다. 플랫폼 모듈의 코드를 살펴보면, 약간 깨지기 쉬운 것으로 보이며,이 경우에는 Apple이 다중 아치 선택 기능을 구현 한 방식과 관련이 있습니다. 나는 python.org OS X 다중 아치 선택 기능이 완성되었을 때 우리가 이것을 보도록하기 위해 메모를 추가하려고합니다. –

관련 문제