6

至少有三种方法可以在 Python 中检测操作系统/平台。

每种方法的理想应用是什么?什么时候应该使用一种方法而不是另一种方法?


编辑:我的具体用例是安装时和运行时检查依赖项。setup.py如果我在“Windows”上,我不想安装某些库,因为它需要 Visual Studio。然后,在运行时我想检查依赖项是否可用(它可能不在“Windows”上)。

编辑2:如果需要每个级别的操作系统详细信息,也很高兴看到一个简短的示例。

4

1 回答 1

8

这取决于您需要多少信息。

os.name只会让您大致了解您所处的环境(例如 POSIX 与 Windows NT) - 甚至没有操作系统名称。文档说:

See也 sys.platform有更精细的粒度。os.uname()给出与系统相关的版本信息。平台模块提供对系统身份的详细检查。

sys.platform为您提供更多信息,例如,实际上可以告诉您您运行的是 Linux 还是 FreeBSD。

platform模块将为您提供最多信息,包括您正在运行的操作系统版本和处理器信息。

因此,您应该具体说明您要完成的工作,然后可能会清楚哪种方法最合适。

于 2013-09-26T01:45:21.320 回答