Python sys.platform = Linux2但不是Linux3?

Zen*_*tii 8 python-3.x

我正在阅读的这本书sys.platform在python3中显示我,在Windows上运行正常,但在Linux中,我继续回到"Linux2",即使我的内核是Linux3.

在StackOverflow上搜索我看到人们提到platform.systemos.name.第一个将告诉你Linux/Windows但不是什么版本,后者为你提供了NT/Posix中的技术名称.

我有点困惑,这是经验python编码器使用的最准确和首选的方法.是否有可能获得"windows7"或Linux3?

非常感谢.PS.仍然是stackoverflow的新手,希望正确地格式化我的问题.

Ole*_*pin 15

你不应该依赖这个数字,因为正如你所指出的那样,它是不一致的.它实际上显示了编译Python的系统上的主要内核版本.

此外,它已在Python 3.3中删除:

issue 12326:在Linux上,sys.platform不再包含主要版本.它现在总是'linux',而不是'linux2'或'linux3',具体取决于用于构建Python的Linux版本.如果您不需要支持较旧的Python版本,请替换sys.platform == 'linux2'sys.platform.startswith('linux')或直接替换sys.platform == 'linux'.
- Python 3.3中的新功能 » 移植Python代码

也可以看看: sys.platform

因此,找出系统是否为Linux的首选方法是sys.platform.startswith('linux').它适用于所有版本的Python和Linux.

似乎没有办法在标准库中更精确地找出操作系统名称.