macos – How do I determine if my python shell is executing in 32bit or 64bit?

macos – How do I determine if my python shell is executing in 32bit or 64bit?

One way is to look at sys.maxsize as documented here:

$ 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 was introduced in Python 2.6. If you need a test for older systems, this slightly more complicated test should work on all Python 2 and 3 releases:

$ python-32 -c import struct;print( 8 * struct.calcsize(P))
32
$ python-64 -c import struct;print( 8 * struct.calcsize(P))
64

BTW, you might be tempted to use platform.architecture() for this. Unfortunately, its results are not always reliable, particularly in the case of OS X universal binaries.

$ 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

When starting the Python interpreter in the terminal/command line you may also see a line like:

Python 2.7.2 (default, Jun 12 2011, 14:24:46) [MSC v.1500 64 bit (AMD64)] on win32

Where [MSC v.1500 64 bit (AMD64)] means 64-bit Python.
Works for my particular setup.

macos – How do I determine if my python shell is executing in 32bit or 64bit?

Basically a variant on Matthew Marshalls answer (with struct from the std.library):

import struct
print struct.calcsize(P) * 8

Leave a Reply

Your email address will not be published.