【问题标题】:How to know the system is Debian or CentOS in Python?如何在 Python 中知道系统是 Debian 还是 CentOS?
【发布时间】:2011-08-22 13:20:51
【问题描述】:

我想用python写一些安装脚本,它应该知道操作系统选择apt命令或yum命令。

sys.platform 似乎可以告诉 'win32' 或其他人,但如何知道它在 Python 中运行在 Debian 或 CentOS 上?

【问题讨论】:

    标签: python debian centos yum apt


    【解决方案1】:

    如果您只需要知道是使用 yum 还是 apt,一种方法就是选择其中一个命令并尝试一下。如果有效,则有效;如果没有,捕获异常并尝试其他命令。

    【讨论】:

    • 这当然是“pythonic”的做法...如果 OP 只想在 yumaptzypperemergeetc 之间进行选择,那就是可能是最好的方法。另一方面,如果有其他特定于发行版的功能,使用platform 模块可能更有意义......无论哪种方式,+1 来自我!
    • 也谢谢。如果没有好的方法来区分这些平台,我会用你的方法。
    【解决方案2】:

    标准库中的platform module 有你想要的。

    import platform
    print platform.linux_distribution()
    

    【讨论】:

    • 谢谢,它有效。但我发现 Python 2.6 支持 platform.linux_distribution()。对于流行的 CentOS 5.5,因为它的默认 Python 版本是 2.4.3,所以必须使用platform.dist()
    • 作为更新,platform.linux_distribution() 已被贬值。建议改用 PyPI 库,比如 distro github.com/nir0s/distro,讨论一下bugs.python.org/msg207415
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 2017-06-23
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多