Seite 1 von 1

Testen ob 32 oder 64 Bit Windows

Verfasst: Donnerstag 16. Juni 2011, 14:11
von Empi
hallo zusammen.

Ich starte ein Python Programm, bei dem es wichtig ist, ob es auf einem 32 oder 64 Bit Betriebssystem (hier Windows 7) ausgeführt wird. Die Installationsart der Python Laufzeitumgebung
ist hierbei egal, wichtig ist nur die Betriebssystem Installation.

Habe folgendes ausprobiert:

Code: Alles auswählen

import sys
print (sys.platform)
--> Liefert mir frecher Weise win32 als Ergebnis auf meinem 64 Bit Testrechners zurück

Code: Alles auswählen

import ctypes
i = ctypes.c_int()
kernel32 = ctypes.windll.kernel32
process = kernel32.GetCurrentProcess()
kernel32.IsWow64Process(process, ctypes.byref(i))
is64bit = (i.value != 0)
print(is64bit)
--> Liefert mir ebenfalls False zurück.

Ich bin mir aber absolut sicher, daß das Betriebssystem ein 64 Bit Windows 7 ist :roll:
Normalerweise hätte ich ja vermutet, daß beides auf die Python Installation testet, ob diese 64 Bit ist oder nicht, aber interessanter Weise ist die Python Installation eben auch 64 Bit.

Re: Testen ob 32 oder 64 Bit Windows

Verfasst: Donnerstag 16. Juni 2011, 14:17
von Empi
Habs eben gefunden :mrgreen:

Code: Alles auswählen

import platform
print (platform.architecture())
Sorry für das unnötige Posting :oops:

Re: Testen ob 32 oder 64 Bit Windows

Verfasst: Donnerstag 16. Juni 2011, 15:24
von Gremlin
Das ist aber wohl nicht genau das was du suchst: Queries the given executable (defaults to the Python interpreter binary) for various architecture information.

Ich mache das so:

Code: Alles auswählen

if 'PROGRAMFILES(X86)' in os.environ:
    WIN64 = True
else:
    WIN64 = False
Klappt zwar nur solange wie ein Windows mit 64bit auch 32bit Anwendungen unterstützt bzw. sie gesondert behandelt, aber es funktioniert. :)

Re: Testen ob 32 oder 64 Bit Windows

Verfasst: Donnerstag 16. Juni 2011, 15:37
von anogayales
Empi hat geschrieben:Habs eben gefunden :mrgreen:

Code: Alles auswählen

import platform
print (platform.architecture())
Sorry für das unnötige Posting :oops:
Ich hab ein 64bit Betribesystem nutze aber Python 32bit und bekomme folgende Ausgabe:

Code: Alles auswählen

 ('32bit', 'WindowsPE')
Die Ausgabe also mit Vorsicht genießen :)

Grüße,
anogayales

Re: Testen ob 32 oder 64 Bit Windows

Verfasst: Donnerstag 16. Juni 2011, 15:54
von derdon
Gremlin hat geschrieben:Ich mache das so:

Code: Alles auswählen

if 'PROGRAMFILES(X86)' in os.environ:
    WIN64 = True
else:
    WIN64 = False
Das tut exakt das gleiche wie

Code: Alles auswählen

WIN64 = 'PROGRAMFILES(X86)' in os.environ