从Python脚本确定操作系统是否为Debian衍生产品的好方法是什么(而且将来我还将为Fedora,FreeBSD等使用相同的功能)?
我需要它来选择是使用dpkg -s
命令来确定安装了哪个软件,还是回过头来检查PATH
中是否有命令。
例如,要确定是否安装了xsltproc
软件包(及其版本,如果可能的话),请使用dpkg -s xsltproc
(如果它是Debian或派生系统),或者检查是否有xsltproc
否则PATH
。
答案 0 :(得分:3)
某些人可能会鼓励您寻找要使用的功能,而不是发行版,然后根据该功能推断您应该使用的功能。例如,如果要使用dpkg
,请检查它是否存在,然后再使用它。
但是,这不能回答您的特定问题……您如何才能真正知道您正在运行的发行版?根据您所运行的Python版本,有两种选择:
platform.linux_distribution()
。如here所述,它将返回(distro name, version, id)
的元组。但是,它已在Python 3中弃用,并将由3.8删除。distro
软件包。如here所述,通过安装此软件包然后调用distro.linux_distribution()
,您将获得非常相似的东西。发行说明说,这将适用于2.7和3.4 +。还有一些比这更旧的选项,但是自2.6版以来,它们已被弃用,因此我在此处未包括它们。