Які можливі значення повернення від наступної команди?
import sys
print sys.platform
Я знаю, що можливостей дуже багато, тому мене в основному цікавлять "основні" (Windows, Linux, Mac OS)
Відповіді:
┍━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┑
│ 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 │
┕━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┙
(*) До версії Python 3.3 значення для будь-якої версії Linux завжди є linux2
; після, це так linux
.
macOS
систем? Вони все ще вирішують darwin
?
Mac OS X (10.4, 10.5, 10.7, 10.8):
darwin
Linux (ядро 2.6):
linux2
32-розрядна версія Windows XP:
win32
Версії в дужках перевірені - інші / новіші версії, ймовірно, будуть однаковими.
darwin
всі ядра Linux 2.x linux2
, а Windows буде win32 або win64 .. але, я не перевіряв
platform.system()
може бути менш заплутаним рішенням ("Windows" проти "Linux").
Як вказували інші, sys.platform походить від імені, яке постачальник систем надає своїй системі. Однак Python також додає plat- до sys.path, тому ви можете переглянути всі каталоги plat- * у розподілі Python.
Це дає вам список
aix3 aix4 atheos beos5 darwin freebsd2 freebsd3 freebsd4 freebsd5 freebsd6 freebsd7 generic irix5 irix6 linux2 mac netbsd1 next3 os2emx riscos sunos5 unixware7
Звичайно, sys.platform може мати додаткові значення, коли Python компілюється в системі, для якої не створено жодного каталогу, що відповідає платформі.
Від сюди .
win32
, os2
,unknown
Станом на 29 грудня 2013 року OS X 10.9.1 Mavericks все ще має маркування Darwin.