至少有三种方法可以在 Python 中检测操作系统/平台。
每种方法的理想应用是什么?什么时候应该使用一种方法而不是另一种方法?
编辑:我的具体用例是安装时和运行时检查依赖项。setup.py
如果我在“Windows”上,我不想安装某些库,因为它需要 Visual Studio。然后,在运行时我想检查依赖项是否可用(它可能不在“Windows”上)。
编辑2:如果需要每个级别的操作系统详细信息,也很高兴看到一个简短的示例。
至少有三种方法可以在 Python 中检测操作系统/平台。
每种方法的理想应用是什么?什么时候应该使用一种方法而不是另一种方法?
编辑:我的具体用例是安装时和运行时检查依赖项。setup.py
如果我在“Windows”上,我不想安装某些库,因为它需要 Visual Studio。然后,在运行时我想检查依赖项是否可用(它可能不在“Windows”上)。
编辑2:如果需要每个级别的操作系统详细信息,也很高兴看到一个简短的示例。
这取决于您需要多少信息。
os.name
只会让您大致了解您所处的环境(例如 POSIX 与 Windows NT) - 甚至没有操作系统名称。文档说:
See也
sys.platform
有更精细的粒度。os.uname()
给出与系统相关的版本信息。平台模块提供对系统身份的详细检查。
sys.platform
为您提供更多信息,例如,实际上可以告诉您您运行的是 Linux 还是 FreeBSD。
该platform
模块将为您提供最多信息,包括您正在运行的操作系统版本和处理器信息。
因此,您应该具体说明您要完成的工作,然后可能会清楚哪种方法最合适。