Каковы возможные значения возврата из следующей команды?
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 дарвин freebsd2 freebsd3 freebsd4 freebsd5 freebsd6 freebsd7 общий 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.