Python: windows OS-version und-Architektur
Zunächst, ich glaube nicht, dass diese Frage ist ein Duplikat
Erkennen 64bit OS (windows) in Python
weil imho es wurde nicht gründlich beantwortet.
Nur die Annäherung an die Antwort ist:
Verwenden
sys.getwindowsversion()
oder die Existenz von PROGRAMFILES(X86) (if 'PROGRAMFILES(X86)' in os.environ
)
Aber:
- Funktioniert die windows-Umgebungsvariable
PROGRAMFILES(X86)
zuverlässig? Ich fürchte, jeder kann es schaffen, auch wenn es nicht auf dem system vorhanden. - Wie zu verwenden
sys.getwindowsversion()
um die Architektur?
Bezüglich sys.getwindowsversion()
:
Der link http://docs.python.org/library/sys.html#sys.getwindowsversion
führt uns zu http://msdn.microsoft.com/en-us/library/ms724451%28VS.85%29.aspx
aber ich sehe nicht alles, was mit der Architektur (32bit/64bit).
Außerdem, die Plattform-element in der zurückgegebenen Tupel scheint unabhängig zu sein von der Architektur.
Eine Letzte Anmerkung: ich bin auf der Suche für eine Lösung, bei der sowohl python 2.5 und eine windows-version ab Windows XP
Dank!
Edit:
Die relevante info ist hier erhältlich
http://msdn.microsoft.com/en-us/library/ms724340%28v=VS.85%29.aspx
aber wie kann ich diese mit python?
Edit2:
Auf einem 64bit windows mit 32bit python-interpreter:
- os.environ["PROCESSOR_ARCHITECTURE"] zurück
- 'x86'
- Plattform.Architektur() gibt
- ('32bit', 'PE')
Wie der Frage-Titel schon sagt: die Größe, der Architektur und der version
Tjese Antworten richtig sind und die Lösung auch, seine nur, wenn Sie führen ein 32-bit programm auf 64-bit, windows emuliert diese Daten. Also die winapi gibt eine falsche version für Sie.
Ich bin auf der Suche nach richtigen Antworten, unabhängig von der python-interpreter Ziel-Architektur. Es ist die OS-Architektur, als ich es bin suchen.
Architektur nur Teilmenge: stackoverflow.com/questions/7491391/... 32 vs 64 Teilmenge: stackoverflow.com/questions/1405913/...
InformationsquelleAutor Thorfin | 2010-05-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Variablen zeigen Ihre aktuellen Laufzeit-status auf windows:
Ja, Sie können mit Hilfe der SET-Befehl oder die Windows-Benutzeroberfläche.
InformationsquelleAutor Luke
Ich denke, die Plattform-Modul ist wirklich der beste Weg, um diese Informationen zu bekommen.
Sehe ich nicht, wo man eine Feste Antwort auf 32/64-bit-windows von hier, so schlage ich vor:
oder, wenn Sie brauchen, um zu wissen, welche Variante von Python geben, die Sie ausführen (Sie können laufen x32 python unter Windows x64):
platform.machine()
gibt jetzt 32/64 bit-alsi386/AMD64
.platform.uname()
zurückkehren wird, die OS-version und-Architektur in einem einzigen Aufruf.InformationsquelleAutor Curtis Price
1 eine Weitere option (poll WMI für OsArchitecture):
Wenn Sie installieren pywin32 und die python wmi - Modul auf der Oberseite, die Sie sollten in der Lage sein zu tun (aber erst ab Windows Vista und aufwärts!):
2 Alternativ können Sie auch das
_winreg
Modul zu prüfen, die Existenz vonSOFTWARE\Wow6432Node
unterHKEY_LOCAL_MACHINE
(dies ist angeblich nur dort auf 64-bit - OS-Versionen) (keine externen Abhängigkeiten).Ok, eine weitere option (2) - ungetestet, da ich keine 64-bit-windows-Betriebssystem um.
Dank Christophe, sollte diese Arbeit in der Tat! Aber ich bevorzuge, ein bisschen Luke ' s-Lösung, weil ich nicht zum importieren einer windows-spezifischen Modul
InformationsquelleAutor ChristopheD
ich hoffe, dass dies das problem lösen kann
ich versuchte es auf meinem windows 8.1 64-bit aus und gibt den Wert AMD64 für mich
nur diesen code ausführen
wenn Sie auf 64-bit-windows-Maschine druckt AMD64
oder wenn Sie auf 32 bit-es wird gedruckt, AMD32
ich hoffe, dieser code kann helfen, dieses problem zu lösen, vollständig
InformationsquelleAutor rishabhr0y
Hier ein nettes Python-Befehl " one-liner.
InformationsquelleAutor Love and peace - Joe Codeswell