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