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)
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.