Was sind die möglichen Rückgabewerte des folgenden Befehls?
import sys
print sys.platform
Ich weiß, dass es viele Möglichkeiten gibt, daher interessiere ich mich hauptsächlich für die "wichtigsten" (Windows, Linux, Mac OS).
Antworten:
┍━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┑
│ System │ Value │
┝━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━┥
│ Linux │ linux or linux2 (*) │
│ Windows │ win32 │
│ Windows/Cygwin │ cygwin │
│ Windows/MSYS2 │ msys │
│ Mac OS X │ darwin │
│ OS/2 │ os2 │
│ OS/2 EMX │ os2emx │
│ RiscOS │ riscos │
│ AtheOS │ atheos │
│ FreeBSD 7 │ freebsd7 │
│ FreeBSD 8 │ freebsd8 │
│ FreeBSD N │ freebsdN │
│ OpenBSD 6 │ openbsd6 │
┕━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┙
(*) Vor Python 3.3 ist der Wert für jede Linux-Version immer linux2
; danach ist es linux
.
macOS
Systemen? Entschließen sie sich noch dazu darwin
?
Mac OS X (10.4, 10.5, 10.7, 10.8):
darwin
Linux (2.6 Kernel):
linux2
Windows XP 32 Bit:
win32
Versionen in Klammern wurden überprüft - andere / neuere Versionen sind wahrscheinlich identisch.
darwin
alle 2.x Linux - Kernel wird linux2
, und Windows wird win32 oder win64 sein .. aber ich habe nicht geprüft
platform.system()
kann eine weniger verwirrende Lösung sein ("Windows" vs "Linux").
Wie andere angegeben haben, wird sys.platform von dem Namen abgeleitet, den der Systemanbieter seinem System gibt. Python fügt jedoch auch plat- zu sys.path hinzu, sodass Sie alle plat- * -Verzeichnisse in der Python-Distribution anzeigen können.
Dies gibt Ihnen die Liste
aix3 aix4 atheos beos5 darwin freebsd2 freebsd3 freebsd4 freebsd5 freebsd6 freebsd7 generic irix5 irix6 linux2 mac netbsd1 next3 os2emx riscos sunos5 unixware7
Natürlich kann sys.platform zusätzliche Werte haben, wenn Python auf einem System kompiliert wird, für das kein plattformspezifisches Verzeichnis erstellt wurde.
Von hier aus .
win32
, os2
,unknown
Ab dem 29. Dezember 2013 trägt OS X 10.9.1 Mavericks weiterhin die Bezeichnung Darwin.