以下命令可能返回的值是什么?
import sys
print sys.platform
我知道有很多可能性,所以我主要对“主要”(Windows,Linux,Mac OS)感兴趣
Answers:
┍━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┑
│ 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
Windows XP 32位:
win32
括号中的版本已被检查-其他/较新的版本可能相同。
darwin
,所有2.x linux内核都将是linux2
,而Windows将是win32或win64 ..但是,我没有检查过
platform.system()
可能是一个不太混乱的解决方案(“ Windows”和“ Linux”)。
正如其他人指出的那样,sys.platform源自系统供应商为其系统提供的名称。但是,Python还将plat-添加到sys.path,因此您可以查看Python发行版中的所有plat- *目录。
这给你清单
aix3 aix4 atheos beos5达尔文freebsd2 freebsd3 freebsd4 freebsd5 freebsd6 freebsd7通用irix5 irix6 linux2 mac netbsd1 next3 os2emx riscos sunos5 unixware7
当然,当在没有创建平台特定目录的系统上编译Python时,sys.platform可以具有其他值。
从这里。
win32
,os2
,unknown