ОБНОВЛЕНИЕ:
Один из способов - посмотреть на 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