platform.architecture
は、Pythonが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)
重複するとマークされた質問はOSXでターゲットに設定されていますが、この質問は異なります。 – CharlesB