代码之家  ›  专栏  ›  技术社区  ›  Jace Browning

我应该在什么时候使用os.name与sys.platform与platform.system()?[副本]

  •  6
  • Jace Browning  · 技术社区  · 13 年前

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

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


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

    编辑2:如果能看到一个简短的例子,说明何时需要每个级别的操作系统细节,那也太好了。

    1 回复  |  直到 13 年前
        1
  •  8
  •   Jonathon Reinhart    13 年前

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

    os.name 只会让您对所处的环境有一个高级的了解(例如POSIX与Windows NT),甚至没有操作系统的名称。文件中写道:

    另请参阅 sys.platform 具有更精细的粒度。 os.uname() 提供了与系统相关的版本信息。 平台模块提供对系统标识的详细检查。

    系统平台 提供了更多的信息,并且可以告诉你,例如,你运行的是Linux还是FreeBSD。

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

    因此,您应该具体说明您正试图实现的目标,然后可能会清楚地知道哪种方法最合适。