以下命令可能返回哪些值?
import sys
print sys.platform
我知道有很多可能性,因此我主要关注“主要”操作系统(Windows、Linux、Mac OS)。
以下命令可能返回哪些值?
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 │
│ AIX │ aix (**) │
┕━━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━┙
(*) 在 Python 3.3 之前,任何 Linux 版本的值始终为 linux2
;在此之后,它是 linux
。
(**) 在 Python 3.8 之前,也可以是 aix5
或 aix7
;使用 sys.platform.startswith()
。
macOS
系统怎么样?它们仍然解析为 darwin
吗? - blubberdiblub苹果电脑操作系统 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..但是,我还没有检查过。 - dbrplatform.system()
可能是一个更少令人困惑的解决方法(区分“Windows”和“Linux”)。 - Daniel F正如其他人所指出的,sys.platform是从系统供应商给他们的系统命名而来。然而,Python还向sys.path添加了plat-,因此您可以查看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可能会有其他值。
来自这里。
win32
、os2
、unknown
。 - Nicklas A.FreeBSD 7.0的标识是freebsd7
。在FreeBSD8上进行构建,但使用的可能是之前的版本,答案相同。
因此,请注意获取用于构建的平台,不一定是您正在运行的平台。