platform — Zugriff auf identifizierende Daten der zugrunde liegenden Plattform¶
Quellcode: Lib/platform.py
Hinweis
Spezifische Plattformen sind alphabetisch aufgelistet, wobei Linux im Abschnitt Unix enthalten ist.
Plattformübergreifend¶
- platform.architecture(executable=sys.executable, bits='', linkage='')¶
Fragt die angegebene ausführbare Datei (standardmäßig die Python-Interpreter-Binärdatei) nach verschiedenen Architekturinformationen ab.
Gibt ein Tupel
(bits, linkage)zurück, das Informationen über die Bit-Architektur und das für die ausführbare Datei verwendete Linkage-Format enthält. Beide Werte werden als Zeichenketten zurückgegeben.Werte, die nicht bestimmt werden können, werden so zurückgegeben, wie sie durch die Parameter-Presets angegeben wurden. Wenn
bitsals''angegeben wird, wird die Größe vonsizeof(pointer)(odersizeof(long)in Python-Versionen < < 1.5.2) als Indikator für die unterstützte Zeigergröße verwendet.Die Funktion stützt sich für die eigentliche Arbeit auf das
file-Kommando des Systems. Dieses ist auf den meisten, wenn nicht allen Unix-Plattformen und einigen Nicht-Unix-Plattformen verfügbar und dann nur, wenn die ausführbare Datei auf den Python-Interpreter verweist. Bei Nichterfüllung der oben genannten Anforderungen werden vernünftige Standardwerte verwendet.Hinweis
Auf macOS (und möglicherweise anderen Plattformen) können ausführbare Dateien universelle Dateien sein, die mehrere Architekturen enthalten.
Um die "64-Bit-Fähigkeit" des aktuellen Interpreters zu ermitteln, ist es zuverlässiger, das Attribut
sys.maxsizeabzufragen.is_64bits = sys.maxsize > 2**32
- platform.machine()¶
Gibt den Maschinentyp zurück, z.B.
'AMD64'. Eine leere Zeichenkette wird zurückgegeben, wenn der Wert nicht ermittelt werden kann.Die Ausgabe ist plattformabhängig und kann sich in Groß-/Kleinschreibung und Namenskonventionen unterscheiden.
- platform.node()¶
Gibt den Netzwerknamen des Computers zurück (möglicherweise nicht vollständig qualifiziert!). Eine leere Zeichenkette wird zurückgegeben, wenn der Wert nicht ermittelt werden kann.
- platform.platform(aliased=False, terse=False)¶
Gibt eine einzelne Zeichenkette zurück, die die zugrunde liegende Plattform mit möglichst vielen nützlichen Informationen identifiziert.
Die Ausgabe ist für Menschen lesbar und nicht für Maschinen lesbar. Sie kann auf verschiedenen Plattformen unterschiedlich aussehen, und das ist beabsichtigt.
Wenn aliased wahr ist, verwendet die Funktion Aliase für verschiedene Plattformen, die Systemnamen melden, die von ihren gängigen Namen abweichen, z. B. wird SunOS als Solaris gemeldet. Die Funktion
system_alias()wird zur Implementierung dieser Funktion verwendet.Wenn terse auf wahr gesetzt ist, gibt die Funktion nur die absolut minimalen Informationen zurück, die zur Identifizierung der Plattform erforderlich sind.
Geändert in Version 3.8: Auf macOS verwendet die Funktion jetzt
mac_ver(), wenn diese eine nicht-leere Release-Zeichenkette zurückgibt, um die macOS-Version anstelle der Darwin-Version zu erhalten.
- platform.processor()¶
Gibt den (echten) Prozessornamen zurück, z.B.
'amdk6'.Eine leere Zeichenkette wird zurückgegeben, wenn der Wert nicht ermittelt werden kann. Beachten Sie, dass viele Plattformen diese Informationen nicht bereitstellen oder einfach den gleichen Wert wie für
machine()zurückgeben. NetBSD tut dies.
- platform.python_build()¶
Gibt ein Tupel
(buildno, builddate)zurück, das die Python-Build-Nummer und das Datum als Zeichenketten angibt.
- platform.python_compiler()¶
Gibt eine Zeichenkette zurück, die den Compiler identifiziert, der zum Kompilieren von Python verwendet wurde.
- platform.python_branch()¶
Gibt eine Zeichenkette zurück, die den SCM-Branch der Python-Implementierung identifiziert.
- platform.python_implementation()¶
Gibt eine Zeichenkette zurück, die die Python-Implementierung identifiziert. Mögliche Rückgabewerte sind: 'CPython', 'IronPython', 'Jython', 'PyPy'.
- platform.python_revision()¶
Gibt eine Zeichenkette zurück, die die SCM-Revision der Python-Implementierung identifiziert.
- platform.python_version()¶
Gibt die Python-Version als Zeichenkette
'major.minor.patchlevel'zurück.Beachten Sie, dass im Gegensatz zur Python-Zeichenkette
sys.versionder zurückgegebene Wert immer die Patch-Ebene enthält (standardmäßig 0).
- platform.python_version_tuple()¶
Gibt die Python-Version als Tupel
(major, minor, patchlevel)von Zeichenketten zurück.Beachten Sie, dass im Gegensatz zur Python-Zeichenkette
sys.versionder zurückgegebene Wert immer die Patch-Ebene enthält (standardmäßig'0').
- platform.release()¶
Gibt die System-Release zurück, z.B.
'2.2.0'oder'NT'. Eine leere Zeichenkette wird zurückgegeben, wenn der Wert nicht ermittelt werden kann.
- platform.system()¶
Gibt den System-/OS-Namen zurück, wie z.B.
'Linux','Darwin','Java','Windows'. Eine leere Zeichenkette wird zurückgegeben, wenn der Wert nicht ermittelt werden kann.Auf iOS und Android gibt dies den benutzerseitigen OS-Namen zurück (d.h.
'iOS,'iPadOS'oder'Android'). Um den Kernel-Namen ('Darwin'oder'Linux') zu erhalten, verwenden Sieos.uname().
- platform.system_alias(system, release, version)¶
Gibt
(system, release, version)zurück, die auf gängige Marketingnamen für einige Systeme umgestellt wurden. Außerdem wird die Reihenfolge der Informationen in einigen Fällen neu geordnet, wenn dies sonst zu Verwirrung führen würde.
- platform.version()¶
Gibt die Release-Version des Systems zurück, z.B.
'#3 on degas'. Eine leere Zeichenkette wird zurückgegeben, wenn der Wert nicht ermittelt werden kann.Auf iOS und Android ist dies die benutzerseitige OS-Version. Um die Darwin- oder Linux-Kernel-Version zu erhalten, verwenden Sie
os.uname().
- platform.uname()¶
Ein ziemlich portables uname-Interface. Gibt ein
namedtuple()zurück, das sechs Attribute enthält:system,node,release,version,machineundprocessor.processorwird spät, bei Bedarf aufgelöst.Hinweis: Die ersten beiden Attributnamen unterscheiden sich von den Namen, die von
os.uname()präsentiert werden, wo siesysnameundnodenameheißen.Einträge, die nicht ermittelt werden können, werden auf
''gesetzt.Geändert in Version 3.3: Ergebnis von einem Tupel zu einem
namedtuple()geändert.Geändert in Version 3.9:
processorwird spät und nicht sofort aufgelöst.
Java-Plattform¶
- platform.java_ver(release='', vendor='', vminfo=('', '', ''), osinfo=('', '', ''))¶
Versionsschnittstelle für Jython.
Gibt ein Tupel
(release, vendor, vminfo, osinfo)zurück, wobei vminfo ein Tupel(vm_name, vm_release, vm_vendor)und osinfo ein Tupel(os_name, os_version, os_arch)ist. Werte, die nicht ermittelt werden können, werden auf die als Parameter angegebenen Standardwerte gesetzt (die alle standardmäßig''sind).Veraltet seit Version 3.13, wird in Version 3.15 entfernt: Sie war größtenteils ungetestet, hatte eine verwirrende API und war nur für die Jython-Unterstützung nützlich.
Windows-Plattform¶
- platform.win32_ver(release='', version='', csd='', ptype='')¶
Ruft zusätzliche Versionsinformationen aus der Windows-Registrierung ab und gibt ein Tupel
(release, version, csd, ptype)zurück, das sich auf die OS-Release, die Versionsnummer, die CSD-Stufe (Service Pack) und den OS-Typ (Multi-/Single-Prozessor) bezieht. Werte, die nicht ermittelt werden können, werden auf die als Parameter angegebenen Standardwerte gesetzt (die alle standardmäßig eine leere Zeichenkette sind).Als Hinweis: ptype ist
'Uniprocessor Free'auf Single-Prozessor-NT-Maschinen und'Multiprocessor Free'auf Multi-Prozessor-Maschinen. Das'Free'bezieht sich darauf, dass die OS-Version frei von Debugging-Code ist. Es könnte auch'Checked'angeben, was bedeutet, dass die OS-Version Debugging-Code verwendet, d.h. Code, der Argumente, Bereiche usw. prüft.
- platform.win32_edition()¶
Gibt eine Zeichenkette zurück, die die aktuelle Windows-Edition darstellt, oder
None, wenn der Wert nicht ermittelt werden kann. Mögliche Werte sind unter anderem'Enterprise','IoTUAP','ServerStandard'und'nanoserver'.Hinzugefügt in Version 3.8.
- platform.win32_is_iot()¶
Gibt
Truezurück, wenn die vonwin32_edition()zurückgegebene Windows-Edition als IoT-Edition erkannt wird.Hinzugefügt in Version 3.8.
macOS-Plattform¶
- platform.mac_ver(release='', versioninfo=('', '', ''), machine='')¶
Ruft macOS-Versionsinformationen ab und gibt sie als Tupel
(release, versioninfo, machine)zurück, wobei versioninfo ein Tupel(version, dev_stage, non_release_version)ist.Einträge, die nicht ermittelt werden können, werden auf
''gesetzt. Alle Tupel-Einträge sind Zeichenketten.
iOS-Plattform¶
- platform.ios_ver(system='', release='', model='', is_simulator=False)¶
Ruft iOS-Versionsinformationen ab und gibt sie als
namedtuple()mit den folgenden Attributen zurück.systemist der OS-Name; entweder'iOS'oder'iPadOS'.releaseist die iOS-Versionsnummer als Zeichenkette (z.B.'17.2').modelist die Geräte-Modellkennung; dies ist eine Zeichenkette wie'iPhone13,2'für ein physisches Gerät oder'iPhone'auf einem Simulator.is_simulatorist ein boolescher Wert, der beschreibt, ob die App auf einem Simulator oder einem physischen Gerät läuft.
Einträge, die nicht ermittelt werden können, werden auf die als Parameter angegebenen Standardwerte gesetzt.
Unix-Plattformen¶
- platform.libc_ver(executable=sys.executable, lib='', version='', chunksize=16384)¶
Versucht, die libc-Version zu ermitteln, gegen die die Datei
executable(standardmäßig der Python-Interpreter) gelinkt ist. Gibt ein Tupel von Zeichenketten(lib, version)zurück, die standardmäßig auf die angegebenen Parameter gesetzt werden, falls die Suche fehlschlägt.Beachten Sie, dass diese Funktion intime Kenntnisse darüber hat, wie verschiedene libc-Versionen Symbole zur ausführbaren Datei hinzufügen, und wahrscheinlich nur für ausführbare Dateien verwendbar ist, die mit gcc kompiliert wurden.
Die Datei wird in Blöcken von chunksize Bytes gelesen und gescannt.
Linux-Plattformen¶
- platform.freedesktop_os_release()¶
Ruft die Betriebssystemidentifikation aus der
os-release-Datei ab und gibt sie als Dictionary zurück. Dieos-release-Datei ist ein freedesktop.org-Standard und auf den meisten Linux-Distributionen verfügbar. Eine bemerkenswerte Ausnahme sind Android und Android-basierte Distributionen.Löst
OSErroroder eine Unterklasse aus, wenn weder/etc/os-releasenoch/usr/lib/os-releasegelesen werden können.Bei Erfolg gibt die Funktion ein Dictionary zurück, bei dem Schlüssel und Werte Zeichenketten sind. Werte haben ihre Sonderzeichen wie
"und$unzensiert. Die FelderNAME,IDundPRETTY_NAMEsind gemäß dem Standard immer definiert. Alle anderen Felder sind optional. Anbieter können zusätzliche Felder einfügen.Beachten Sie, dass Felder wie
NAME,VERSIONundVARIANTZeichenketten sind, die für die Darstellung für Benutzer geeignet sind. Programme sollten Felder wieID,ID_LIKE,VERSION_IDoderVARIANT_IDverwenden, um Linux-Distributionen zu identifizieren.Beispiel
def get_like_distro(): info = platform.freedesktop_os_release() ids = [info["ID"]] if "ID_LIKE" in info: # ids are space separated and ordered by precedence ids.extend(info["ID_LIKE"].split()) return ids
Hinzugefügt in Version 3.10.
Android-Plattform¶
- platform.android_ver(release='', api_level=0, manufacturer='', model='', device='', is_emulator=False)¶
Ruft Android-Geräteinformationen ab. Gibt ein
namedtuple()mit den folgenden Attributen zurück. Werte, die nicht ermittelt werden können, werden auf die als Parameter angegebenen Standardwerte gesetzt.release- Android-Version, als Zeichenkette (z.B."14").api_level- API-Level des laufenden Geräts, als Ganzzahl (z.B.34für Android 14). Um das API-Level zu erhalten, gegen das Python kompiliert wurde, siehesys.getandroidapilevel().manufacturer- Herstellername.model- Modellname – typischerweise der Marketingname oder die Modellnummer.device- Gerätename – typischerweise die Modellnummer oder ein Codename.is_emulator-True, wenn das Gerät ein Emulator ist;False, wenn es ein physisches Gerät ist.
Google pflegt eine Liste bekannter Modell- und Gerätenamen.
Hinzugefügt in Version 3.13.
Verwendung über die Kommandozeile¶
platform kann auch direkt mit dem -m Schalter des Interpreters aufgerufen werden.
python -m platform [--terse] [--nonaliased] [{nonaliased,terse} ...]
Die folgenden Optionen werden akzeptiert:
- --terse¶
Gibt knappe Informationen über die Plattform aus. Dies entspricht dem Aufruf von
platform.platform()mit dem aufTruegesetzten Argument terse.
- --nonaliased¶
Plattforminformationen ohne System-/Betriebssystemnamen-Aliasing ausgeben. Dies entspricht dem Aufruf von
platform.platform()mit dem Argument aliased aufTruegesetzt.
Sie können auch ein oder mehrere positionelle Argumente (terse, nonaliased) übergeben, um das Ausgabeformat explizit zu steuern. Diese verhalten sich ähnlich wie ihre entsprechenden Optionen.