Testen ob 32 oder 64 Bit Windows

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
Empi
User
Beiträge: 26
Registriert: Montag 29. März 2010, 14:05

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.
Benutzeravatar
Empi
User
Beiträge: 26
Registriert: Montag 29. März 2010, 14:05

Habs eben gefunden :mrgreen:

Code: Alles auswählen

import platform
print (platform.architecture())
Sorry für das unnötige Posting :oops:
Gremlin
User
Beiträge: 166
Registriert: Freitag 28. Mai 2010, 23:49

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. :)
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

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
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

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
Antworten