Python 来自sys.platform的可能值?

Python 来自sys.platform的可能值?,python,cross-platform,Python,Cross Platform,以下命令可能返回的值是什么 import sys print sys.platform 我知道有很多可能性,所以我主要对“主要”的(Windows、Linux、Mac OS)感兴趣。Mac OS X(10.4、10.5、10.7、10.8): Linux(2.6内核): Windows XP 32位: win32 括号中的版本已检查-其他/较新版本可能相同 正如其他人所指出的,sys.platform 派生自 系统供应商提供了他们的系统。 然而,Python也添加了 平台到sys.path,

以下命令可能返回的值是什么

import sys
print sys.platform
我知道有很多可能性,所以我主要对“主要”的(Windows、Linux、Mac OS)感兴趣。

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

Linux(2.6内核):

Windows XP 32位:

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

正如其他人所指出的,sys.platform 派生自 系统供应商提供了他们的系统。 然而,Python也添加了 平台到sys.path,所以 你可以看看所有的平台-* Python中的目录 分配

这会给你一个列表

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

当然,sys.platform可以 其他值,当Python 在没有 特定于平台的目录已被删除 创造


From.

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

因此,请注意,您得到的是用于构建的平台,而不必依赖于您正在运行的平台。

┍━━━━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━━━━━━━━┑
│ 系统│ 价值│
┝━━━━━━━━━━━━━━━━━━━━━┿━━━━━━━━━━━━━━━━━━━━━┥
│ Linux│ linux或linux2(*)│
│ 窗户│ win32│
│ Windows/Cygwin│ 西格温│
│ Windows/MSYS2│ msys│
│ MacOSX│ 达尔文│
│ OS/2│ os2│
│ OS/2EMX│ os2emx│
│ 里斯科│ 里斯科│
│ 阿瑟斯│ 阿瑟斯│
│ FreeBSD 7│ freebsd7│
│ FreeBSD 8│ freebsd8│
│ 弗里伯斯│ freebsdN│
│ OpenBSD6│ openbsd6│
┕━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┙

(*)在Python 3.3之前,任何Linux版本的值总是
linux2
;从2013年12月29日起,OS X 10.9.1 Mavericks仍然被标记为Darwin。

通过挖掘源代码,有一些更常见的:
win32
os2
unknown
在Python 3.3和更高版本的
linux2
变成了
linux
@德清:三年后修复:)10.5以上的OSX版本怎么样,它们是否也被标在“达尔文”下?高于2.6的Linux内核版本呢?Windows版本高于XP?@Dennis在回答中澄清-列出的版本就是我检查过的版本。我几乎可以肯定,所有OS X版本都将是
darwin
,所有2.X linux内核都将是
linux2
,Windows将是win32或win64。。但是,我还没有检查过Linux的较新版本可能使用“linux3”而不是“linux2”。@MarioVilas:没有,即使对于linux3内核,Python也坚持使用linux2,因为这与Python的观点没有区别。在64位Windows上安装64位Python也会输出“win32”。使用
platform.system()
可能是一个比较容易混淆的解决方案(“Windows”与“Linux”)。您应该列出这一点。这可能是本文撰写时最有用的答案。时尚的ASCII艺术电子表格的额外业力。当前的
macOS
系统如何?他们还决心要
darwin
?我得到了“linux”@blubberdiblub是的。看看python3.9,达尔文就是OSX内核。要获取OS X版本号,请使用
linux2
win32