"""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()))

