【问题标题】:How to check if the OS is a Debian derivative (Python)如何检查操作系统是否是 Debian 衍生产品(Python)
【发布时间】:2019-02-02 14:04:21
【问题描述】:
有什么好方法可以通过 Python 脚本确定操作系统是否是 Debian 衍生产品(而且将来我需要 Fedora、FreeBSD 等的相同功能)?
我需要这个来选择是使用dpkg -s 命令来确定安装了哪个软件,还是回退到检查PATH 中是否有命令。
例如判断是否安装了xsltproc包(如果可能的话,它的版本),如果是Debian或衍生系统,我使用dpkg -s xsltproc,否则检查PATH中是否有xsltproc .
【问题讨论】:
标签:
python
operating-system
debian
【解决方案1】:
有些人可能会鼓励您寻找您想要使用的功能而不是发行版,然后据此推断您应该使用什么。例如,如果您想使用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 以来已被弃用,因此我没有将它们包括在此处。