540 Stimmen

Wie kann ich feststellen, ob meine Python-Shell in 32bit oder 64bit ausgeführt wird?

Ich benötige eine Möglichkeit, aus der Shell heraus zu erkennen, in welchem Modus sich die Shell befindet.

Ich bin zwar in erster Linie ein OS X-Benutzer, aber ich wäre auch an Informationen über andere Plattformen interessiert.

Ich habe versucht, mir die Plattform Modul, aber es scheint nur über "über die Bit-Architektur und das Verknüpfungsformat, das für die ausführbare Datei verwendet wird" zu informieren: die Binärdatei wird jedoch als 64bit kompiliert (ich verwende OS X 10.6), also scheint es immer 64bit zu melden, obwohl ich die Methoden hier beschrieben um den 32bit-Modus zu erzwingen).

11voto

Shannon Mann Punkte 111

platform.architecture() sagen die Notizen:

Anmerkung: Unter Mac OS X (und möglicherweise anderen Plattformen) können ausführbare Dateien universelle Dateien sein, die mehrere Architekturen enthalten.

Um die "64-Bitness" des aktuellen Interpreters zu erreichen, ist es zuverlässiger die Abfrage des Attributs sys.maxsize:

import sys
is_64bits = sys.maxsize > 2**32

11voto

user12549815 Punkte 167

Machen Sie eine python -VV in der Befehlszeile. Es sollte die Version zurückgeben.

10voto

user14462764 Punkte 123

Versuchen Sie dies:

import platform
platform.architecture()

10voto

Rishabh Bhatnagar Punkte 452

Basierend auf abe32s Antwort,

import sys
n_bits = 32 << bool(sys.maxsize >> 32)

n_bits wird 32 oder 64 Bits haben.

8voto

kimbaudi Punkte 10785

struct.calcsize("P") gibt die Größe der Bytes zurück, die zum Speichern eines einzelnen Zeigers erforderlich sind. Auf einem 32-Bit-System würde er 4 Bytes zurückgeben. Auf einem 64-Bit-System werden 8 Bytes zurückgegeben.

Es würde also Folgendes zurückgegeben 32 wenn Sie 32-Bit-Python verwenden und 64 wenn Sie 64-Bit-Python verwenden:

Python 2

import struct;print struct.calcsize("P") * 8

Python 3

import struct;print(struct.calcsize("P") * 8)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X