Как определить, работает ли Python в качестве 64-разрядного приложения?

Возможный дубликат:
Как определить, выполняется ли моя оболочка python в 32-битном или 64-битном режиме?

Я работаю с реестром Windows. В зависимости от того, используете ли вы python как 32-разрядную или 64-разрядную, значение ключа будет отличаться. Как определить, работает ли Python как 64-разрядное приложение, а не 32-разрядное приложение?

Примечание. Я не заинтересован в обнаружении 32-битной/64-разрядной Windows - просто платформы Python.

Ответ 1

import platform
platform.architecture()

Из Документы Python:

Запросит данный исполняемый файл (по умолчанию для двоичного интерпретатора Python) для различная информация о архитектуре.

Возвращает кортеж (бит, связь), который содержат информацию о бит архитектура и формат связи используемый для исполняемого файла. Оба значения возвращаются как строки.

Ответ 2

Хотя он может работать на некоторых платформах, имейте в виду, что platform.architecture не всегда является надежным способом определить, работает ли python в 32-разрядной или 64-разрядной версии. В частности, на некоторых многострочных архитектурах OS X один и тот же исполняемый файл может работать в любом режиме, как показано в примере ниже. Самый быстрый безопасный многоплатформенный подход - проверить sys.maxsize на Python 2.6, 2.7, Python 3.x.

$ 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)