sys.platform中可能的值?

dbr*_*dbr 70 python cross-platform

以下命令可能返回的值是多少?

import sys
print sys.platform
Run Code Online (Sandbox Code Playgroud)

我知道有很多可能性,所以我主要对"主要"(Windows,Linux,Mac OS)感兴趣

小智 86

?????????????????????????????????????????????
? 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            ?
?????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

(*)从python3.3开始,任何Linux的值总是linux(没有版本号).

  • 你应该列出这个. (5认同)
  • 可能是撰写本文时最有用的答案。时尚的ASCII艺术电子表格的附加业力。 (2认同)
  • 当前的“macOS”系统怎么样?他们仍然决心“达尔文”吗? (2认同)

dbr*_*dbr 31

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

darwin
Run Code Online (Sandbox Code Playgroud)

Linux(2.6内核):

linux2
Run Code Online (Sandbox Code Playgroud)

Windows XP 32位:

win32
Run Code Online (Sandbox Code Playgroud)

括号中的版本已经过检查 - 其他/更新的版本可能是相同的.

  • @MarioVilas:不,Python甚至对linux3内核都坚持使用linux2,因为与Python的观点没有区别. (4认同)
  • 64位Windows上的64位Python安装也将输出"win32".使用`platform.system()`可能是一个不太混乱的解决方案("Windows"vs"Linux"). (4认同)

Mit*_*eat 22

正如其他人所指出的那样,sys.platform是从系统供应商提供给他们系统的名称派生出来的.但是,Python还添加了平台sys.path,因此您可以查看Python发行版中的所有plat-*目录.

这会给你列表

aix3 aix4 atheos beos5 darwin freebsd2 freebsd3 freebsd4 freebsd5 freebsd6 freebsd7 generic irix5 irix6 linux2 mac netbsd1 next3 os2emx riscos sunos5 unixware7

当然,当Python在没有创建特定于平台的目录的系统上编译时,sys.platform可以有其他值.

这里开始.

  • 在Python 3.3及更高版本中,`linux2`变为`linux`.[源(http://bugs.python.org/issue12326) (7认同)
  • 通过挖掘源代码,有一些更常见的:`win32`,`os2`,`unknown` (5认同)
  • @Deqing:三年后修好:) (3认同)
  • 链接坏了 (2认同)

Kel*_*tia 7

FreeBSD 7.0 : freebsd7. FreeBSD8但是在之前的版本上进行了构建,同样的答案.

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