如何检查操作系统是否为Debian衍生版本(Python)

时间:2018-08-27 22:41:48

标签: python operating-system debian

从Python脚本确定操作系统是否为Debian衍生产品的好方法是什么(而且将来我还将为Fedora,FreeBSD等使用相同的功能)?

我需要它来选择是使用dpkg -s命令来确定安装了哪个软件,还是回过头来检查PATH中是否有命令。

例如,要确定是否安装了xsltproc软件包(及其版本,如果可能的话),请使用dpkg -s xsltproc(如果它是Debian或派生系统),或者检查是否有xsltproc否则PATH

1 个答案:

答案 0 :(得分:3)

某些人可能会鼓励您寻找要使用的功能,而不是发行版,然后根据该功能推断您应该使用的功能。例如,如果要使用dpkg,请检查它是否存在,然后再使用它。

但是,这不能回答您的特定问题……您如何才能真正知道您正在运行的发行版?根据您所运行的Python版本,有两种选择:

  1. 使用platform.linux_distribution()。如here所述,它将返回(distro name, version, id)的元组。但是,它已在Python 3中弃用,并将由3.8删除。
  2. 使用distro软件包。如here所述,通过安装此软件包然后调用distro.linux_distribution(),您将获得非常相似的东西。发行说明说,这将适用于2.7和3.4 +。

还有一些比这更旧的选项,但是自2.6版以来,它们已被弃用,因此我在此处未包括它们。