Jakie są możliwe wartości zwracane przez następujące polecenie?
import sys
print sys.platform
Wiem, że możliwości jest wiele, więc interesują mnie głównie te „główne” (Windows, Linux, Mac OS)
Odpowiedzi:
┍━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┑
│ 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 │
┕━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┙
(*) Przed Pythonem 3.3 wartość dla dowolnej wersji systemu Linux jest zawsze linux2
; potem jest linux
.
macOS
systemami? Czy nadal postanawiają darwin
?
Mac OS X (10.4, 10.5, 10.7, 10.8):
darwin
Linux (jądro 2.6):
linux2
Windows XP 32-bitowy:
win32
Wersje w nawiasach zostały sprawdzone - inne / nowsze wersje prawdopodobnie będą takie same.
darwin
, wszystkie jądra linux 2.x będą linux2
, a Windows będzie win32 lub win64 .. ale nie sprawdzałem
platform.system()
może być mniej kłopotliwym rozwiązaniem („Windows” kontra „Linux”).
Jak wskazywali inni, sys.platform wywodzi się od nazwy nadanej systemowi przez producenta systemu. Jednak Python dodaje również platformę do sys.path, więc możesz przejrzeć wszystkie katalogi plat- * w dystrybucji Pythona.
To daje ci listę
aix3 aix4 atheos beos5 darwin freebsd2 freebsd3 freebsd4 freebsd5 freebsd6 freebsd7 generic irix5 irix6 linux2 mac netbsd1 next3 os2emx riscos sunos5 unixware7
Oczywiście sys.platform może mieć dodatkowe wartości, gdy Python zostanie skompilowany w systemie, dla którego nie utworzono katalogu specyficznego dla platformy.
Od tutaj .
win32
, os2
,unknown
Od 29 grudnia 2013 r. System OS X 10.9.1 Mavericks nadal nosi nazwę Darwin.