Как определить, работает ли Python как 64-битное приложение?
Возможный дубликат:
Как определить, работает ли моя оболочка python в 32-битном или 64-битном режиме?
Я делаю некоторую работу с реестром Windows. В зависимости от того, используете ли вы Python как 32-битный или 64-битный, значение ключа будет отличаться. Как определить, работает ли Python как 64-разрядное приложение, а не как 32-разрядное приложение?
Примечание: меня не интересует обнаружение 32-битной /64-битной Windows - только платформа Python.
2 ответа
import platform
platform.architecture()
Запрашивает данный исполняемый файл (по умолчанию двоичный файл интерпретатора Python) для получения различной информации об архитектуре.
Возвращает кортеж (биты, связь), который содержит информацию об архитектуре битов и формате связи, используемом для исполняемого файла. Оба значения возвращаются в виде строк.
Хотя это может работать на некоторых платформах, имейте в виду, что 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)