wake-up-neo.com

Wie erkenne ich, ob Python als 64-Bit-Anwendung ausgeführt wird?

Mögliches Duplikat:
Wie stelle ich fest, ob meine python Shell im 32-Bit- oder 64-Bit-Modus ausgeführt wird?

Ich arbeite mit der Windows-Registrierung. Je nachdem, ob Sie python als 32-Bit- oder 64-Bit-Version ausführen, unterscheidet sich der Schlüsselwert. Wie erkenne ich, ob Python ausgeführt wird? als 64-Bit-Anwendung im Gegensatz zu einer 32-Bit-Anwendung?

Hinweis: Ich bin nicht daran interessiert, 32-Bit/64-Bit-Windows zu erkennen - nur die Python Plattform.

102
Nick Bolton
import platform
platform.architecture()

Aus den Python-Dokumenten :

Fragt die angegebene ausführbare Datei ab (standardmäßig die Python Interpreter-Binärdatei)), um verschiedene Architekturinformationen zu erhalten.

Gibt einen Tupel (Bits, Verknüpfung) zurück, der Informationen zur Bitarchitektur und zum für die ausführbare Datei verwendeten Verknüpfungsformat enthält. Beide Werte werden als Zeichenfolgen zurückgegeben.

179
Cristian

Während es auf einigen Plattformen funktionieren kann, beachten Sie, dass platform.architecture ist nicht immer eine verlässliche Methode, um festzustellen, ob python läuft in 32-Bit- oder 64-Bit-Versionen. Insbesondere bei einigen OS X-Builds mit mehreren Architekturen kann dieselbe ausführbare Datei vorhanden sein In beiden Modi kann ausgeführt werden, wie das folgende Beispiel zeigt: Der schnellste und sicherste Ansatz für mehrere Plattformen ist das Testen von sys.maxsize on Python 2.6, 2.7, Python 3.x.

$ Arch -i386 /usr/local/bin/python2.7
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform, sys
>>> platform.architecture(), sys.maxsize
(('64bit', ''), 2147483647)
>>> ^D
$ Arch -x86_64 /usr/local/bin/python2.7
Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import platform, sys
>>> platform.architecture(), sys.maxsize
(('64bit', ''), 9223372036854775807)
57
Ned Deily