我想通过python编写一些安装脚本,它应该知道操作系统选择apt命令或yum命令。如何知道系统是Python中的Debian还是CentOS?
看来sys.platform可以告诉“的win32”或其他,但如何知道它正在开发Debian或者CentOS的在Python?
我想通过python编写一些安装脚本,它应该知道操作系统选择apt命令或yum命令。如何知道系统是Python中的Debian还是CentOS?
看来sys.platform可以告诉“的win32”或其他,但如何知道它正在开发Debian或者CentOS的在Python?
标准库中的platform module有你想要的。
import platform
print platform.linux_distribution()
如果您只需要知道是否使用yum或apt,一种方法就是简单地选择其中一个命令并尝试。如果它起作用,它就会起作用;如果没有,则捕获异常并尝试其他命令。
这肯定是做它的“Python化”的方式......如果OP只想之间'yum','apt','zypper','emerge','etc'选择它可能是最好的办法。另一方面,如果还有其他特定于发行版的功能,则使用“平台”模块可能更有意义......无论哪种方式,我都会+1! – 2011-05-10 15:05:39
也谢谢。如果没有好的办法来区分这些平台,我会使用你的方法。 – William 2011-05-10 15:48:48
谢谢,它的作品。但是我发现Python 2.6支持'platform.linux_distribution()'。对于流行的CentOS 5.5,因为它的默认Python版本是2.4.3,所以它必须使用'platform.dist()'。 – William 2011-05-10 15:47:06
就像升级一样,'platform.linux_distribution()'已经折旧了。建议使用PyPI库,比如发行版https://github.com/nir0s/distro,关于它的讨论https://bugs.python.org/msg207415 – CasualDemon 2017-03-10 15:57:04