Detect 64bit OS (windows) in Python Detect 64bit OS (windows) in Python windows windows

Detect 64bit OS (windows) in Python


I think the best solution to the problem has been posted by Mark Ribau.

The best answer to the question for Python 2.7 and newer is:

def is_os_64bit():    return platform.machine().endswith('64')

On windows the cross-platform-function platform.machine() internally uses the environmental variables used in Matthew Scoutens answer.

I found the following values:

  • WinXP-32: x86
  • Vista-32: x86
  • Win7-64: AMD64
  • Debian-32: i686
  • Debian-64: x86_64

For Python 2.6 and older:

def is_windows_64bit():    if 'PROCESSOR_ARCHITEW6432' in os.environ:        return True    return os.environ['PROCESSOR_ARCHITECTURE'].endswith('64')

To find the Python interpreter bit version I use:

def is_python_64bit():    return (struct.calcsize("P") == 8)


I guess you should look in os.environ['PROGRAMFILES'] for the program files folder.


platform module -- Access to underlying platform’s identifying data

>>> import platform>>> platform.architecture()('32bit', 'WindowsPE')

On 64-bit Windows, 32-bit Python returns:

('32bit', 'WindowsPE')

And that means that this answer, even though it has been accepted, is incorrect. Please see some of the answers below for options that may work for different situations.