Try function architecture() from the platform module in Python 2.3 and 2.4. The first item of the returned tuple shows whether the underlying system is 64-bit capable.
Here is what it returns on RedHat Fedora Core 2 Linux on Opteron: >>> platform.architecture() ('64bit', 'ELF') >>> platform.uname() ('Linux', 'XXXX', '2.6.16.14', '#1 SMP Sat Jul 1 14:09:18 CDT 2006', 'x86_64', 'x86_64') On RedHat Fedora Core 2 on Pentium 4: >>> platform.architecture() ('32bit', 'ELF') >>> platform.uname() ('Linux', 'XXXX', '2.6.10-1771-FC2', '#1 Mon Mar 28 00:50:14 EST 2005', 'i686', 'i686') And on MacOS X 10.3.9 G4: >>> platform.architecture() ('32bit', '') >>> platform.uname() ('Darwin', 'XXXX', '7.9.0', 'Darwin Kernel Version 7.9.0: Wed Mar 30 20:11:17 PST 2005; root:xnu/xnu-517.12.7.obj~1/RELEASE_PPC ', 'Power Macintosh', 'powerpc') /Jean Brouwers dwelch91 wrote: > I need to detect whether the operating system I am running on (not the > Python version) is 64bit or 32bit. One requirement is that I need to > include support for non-Intel/AMD architectures. > > The 2 ways I have thought detecting 64bit are: > > 1. struct.calcsize("P") == 8 > 2. '64' in os.uname()[4] > > I'm not convinced that either one of these is really adequate. Does > anybody have any other ideas on how to do this? > > Thanks, > > Don -- http://mail.python.org/mailman/listinfo/python-list