sys.platform的可能值?


Answers:


110
┍━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┑
│ 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


5
您应该为此列出清单。
本杰明·帕普

3
可能是撰写本文时最有用的答案。时尚的ASCII艺术电子表格的附加业力。
Cecil Curry

1
那么当前的macOS系统呢?他们仍然决心解决darwin吗?
blubberdiblub

1
我得到的“Linux”
vidstige

1
@blubberdiblub是的。
迈克尔·伦纳德

34

Mac OS X(10.4、10.5、10.7、10.8):

darwin

Linux(2.6内核):

linux2

Windows XP 32位:

win32

括号中的版本已被检查-其他/较新的版本可能相同。


高于10.5的OS X版本又会在“ darwin”下标记吗?高于2.6的Linux内核版本呢?Windows版本高于XP?
丹尼斯

@Dennis澄清了答案-列出的版本是我检查过的版本。我几乎可以肯定,所有OS X版本都将是darwin,所有2.x linux内核都将是linux2,而Windows将是win32或win64 ..但是,我没有检查过
dbr 2012年

1
较新版本的Linux可能具有“ linux3”而不是“ linux2”。
MarioVilas 2013年

4
@MarioVilas:不,即使对于linux3内核,Python也坚持使用linux2,因为从Python的角度来看并没有什么不同。
马丁·彼得

4
在64位Windows上安装64位Python也会输出“ win32”。使用platform.system()可能是一个不太混乱的解决方案(“ Windows”和“ Linux”)。
Daniel F

22

正如其他人指出的那样,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可以具有其他值。

这里


5
通过在源代码中挖掘有几个比较常见的:win32os2unknown
尼克拉斯A.

7
在Python 3.3及更高版本上linux2成为linux来源
Michael Plates

3
@德庆:三年后修复:)
xOneca

9

FreeBSD 7.0 :freebsd7。FreeBSD8,但构建在先前版本上执行,答案相同。

因此请注意,您会获得用于构建的平台,而不一定是您正在运行的平台。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.