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

杰斯·布朗宁

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

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


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

编辑2:也很高兴看到一个简短的示例,说明何时需要每个级别的OS详细信息。

乔纳森·莱因哈特

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

os.name只会让您对所处的环境有一个高级的了解(例如POSIX与Windows NT)-甚至没有OS名称。该文件说:

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

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

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

因此,您应该指定要完成的任务,然后可能会清楚哪种方法最合适。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

什么时候应该使用<或<()或<<和>或>()?

来自分类Dev

什么时候应该使用`drain`和`into_iter`?

来自分类Dev

什么时候应该使用on * DOM属性和on * HTML属性?

来自分类Dev

什么时候应该使用conformsToProtocol和responsToSelector方法?

来自分类Dev

什么时候应该使用KnockoutJS组件和模板?

来自分类Dev

什么时候应该使用挂载和创建?

来自分类Dev

什么时候应该使用on * DOM属性和on * HTML属性?

来自分类Dev

什么时候应该使用conformsToProtocol和responsToSelector方法?

来自分类Dev

什么时候应该使用PDO使用try和catch来准备和执行?

来自分类Dev

DatatypeProperty,ObjectProperty和FunctionalProperty有什么区别,什么时候应该使用它们?

来自分类Dev

set,export和env之间有什么区别?什么时候应该使用它们?

来自分类Dev

set,export和env之间有什么区别?什么时候应该使用它们?

来自分类Dev

DatatypeProperty,ObjectProperty和FunctionalProperty有什么区别,什么时候应该使用它们?

来自分类Dev

在设计方面和编写库时,什么时候应该使用指针作为参数,什么时候不应该使用指针?

来自分类Dev

我什么时候应该使用yield和何时在Koa.js中使用yield *

来自分类Dev

我什么时候应该使用yield和何时使用Koa.js的yield *

来自分类Dev

我们什么时候应该使用@PreAuthorize和@Secured

来自分类Dev

我什么时候应该使用let,成员val和成员this。

来自分类Dev

什么时候应该使用sp,dp,px,in和mm?(安卓)

来自分类Dev

什么时候我们应该使用带括号和不带括号的sizeof

来自分类Dev

什么时候应该在RapidJSON中使用CrtAllocator和MemoryPoolAllocator?

来自分类Dev

我什么时候应该在&f和scanf()一起使用

来自分类Dev

什么时候应该使用语义版本控制和git flow创建新标签?

来自分类Dev

什么时候应该使用struct node * head = NULL和struct node * head = NULL?

来自分类Dev

我应该什么时候使用 Fragment 中的 getActivity() 和 getContext()?

来自分类Dev

什么时候使用AbstractAnnotationConfigDispatcherServletInitializer和WebApplicationInitializer?

来自分类Dev

count ++和++ count,什么时候使用?

来自分类Dev

什么时候使用mapParitions和mapPartitionsWithIndex?

来自分类Dev

count ++和++ count,什么时候使用?

Related 相关文章

  1. 1

    什么时候应该使用<或<()或<<和>或>()?

  2. 2

    什么时候应该使用`drain`和`into_iter`?

  3. 3

    什么时候应该使用on * DOM属性和on * HTML属性?

  4. 4

    什么时候应该使用conformsToProtocol和responsToSelector方法?

  5. 5

    什么时候应该使用KnockoutJS组件和模板?

  6. 6

    什么时候应该使用挂载和创建?

  7. 7

    什么时候应该使用on * DOM属性和on * HTML属性?

  8. 8

    什么时候应该使用conformsToProtocol和responsToSelector方法?

  9. 9

    什么时候应该使用PDO使用try和catch来准备和执行?

  10. 10

    DatatypeProperty,ObjectProperty和FunctionalProperty有什么区别,什么时候应该使用它们?

  11. 11

    set,export和env之间有什么区别?什么时候应该使用它们?

  12. 12

    set,export和env之间有什么区别?什么时候应该使用它们?

  13. 13

    DatatypeProperty,ObjectProperty和FunctionalProperty有什么区别,什么时候应该使用它们?

  14. 14

    在设计方面和编写库时,什么时候应该使用指针作为参数,什么时候不应该使用指针?

  15. 15

    我什么时候应该使用yield和何时在Koa.js中使用yield *

  16. 16

    我什么时候应该使用yield和何时使用Koa.js的yield *

  17. 17

    我们什么时候应该使用@PreAuthorize和@Secured

  18. 18

    我什么时候应该使用let,成员val和成员this。

  19. 19

    什么时候应该使用sp,dp,px,in和mm?(安卓)

  20. 20

    什么时候我们应该使用带括号和不带括号的sizeof

  21. 21

    什么时候应该在RapidJSON中使用CrtAllocator和MemoryPoolAllocator?

  22. 22

    我什么时候应该在&f和scanf()一起使用

  23. 23

    什么时候应该使用语义版本控制和git flow创建新标签?

  24. 24

    什么时候应该使用struct node * head = NULL和struct node * head = NULL?

  25. 25

    我应该什么时候使用 Fragment 中的 getActivity() 和 getContext()?

  26. 26

    什么时候使用AbstractAnnotationConfigDispatcherServletInitializer和WebApplicationInitializer?

  27. 27

    count ++和++ count,什么时候使用?

  28. 28

    什么时候使用mapParitions和mapPartitionsWithIndex?

  29. 29

    count ++和++ count,什么时候使用?

热门标签

归档