我什么时候应该使用os.name与sys.platform和platform.system()?

Jac*_*ing 5 python operating-system

在Python中至少有三种方法可以检测OS /平台.

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


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

编辑2:看一个需要每个级别的操作系统细节的简短示例也会很棒.

Jon*_*art 8

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

os.name只会给你一个关于你所处环境的高级概念(例如POSIX与Windows NT) - 甚至不是操作系统名称.文件说:

另请参见 sys.platform具有更精细的粒度.os.uname()提供依赖于系统的版本信息.平台模块提供系统身份的详细检查.

sys.platform 为您提供更多信息,并且实际上可以告诉您,例如,您是否正在运行Linux与FreeBSD.

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

因此,您应该指定您要完成的内容,然后可能会明确哪种方法最合适.