Detecting 64bit vs. 32bit Linux

MrJean1 MrJean1 at gmail.com
Sat Jul 8 13:14:43 EDT 2006


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




More information about the Python-list mailing list