"""is64bit.Python() --> boolean value of detected Python word size. is64bit.os() --> os build version"""
import sys

def Python():
    if sys.platform == 'cli': #IronPython
        import System
        return System.IntPtr.Size == 8
    else:
        try:
            return sys.maxsize > 2147483647
        except AttributeError:
            return sys.maxint > 2147483647

def os():
    import platform
    pm = platform.machine()
    if pm != '..' and pm.endswith('64'):  # recent Python (not Iron)
        return True
    else:
        import os
        if 'PROCESSOR_ARCHITEW6432' in os.environ:
            return True  # 32 bit program running on 64 bit Windows
        try:
            return os.environ['PROCESSOR_ARCHITECTURE'].endswith('64')  # 64 bit Windows 64 bit program
        except IndexError:
            pass  # not Windows
        try:
            return '64' in platform.architecture()[0]  # this often works in Linux
        except:
            return False     # is an older version of Python, assume also an older os (best we can guess)

if __name__ == "__main__":
    print("is64bit.Python() =", Python(), "is64bit.os() =", os())
