Python 3.7及以上版本:如何确定Linux发行版?

Mon*_*ons 8 python linux python-3.x python-3.7

由于Python Docs明确指出platform.linux_distribution():

从版本3.5开始不推荐使用,将在3.7版中删除.

通过Python检测Linux发行版的正确和面向未来的方法是什么?

Mar*_*ers 9

您可以使用该distro项目:

$ pip install distro
$ python
>>> import distro
>>> distro.linux_distribution(full_distribution_name=False)
('centos', '7.1.1503', 'Core')
Run Code Online (Sandbox Code Playgroud)

这个项目来自问题#1322,导致功能的弃用.从项目自述文件:

它是Python原始platform.linux_distribution函数的一个更新的替代实现,但它也提供了更多的功能,不一定像命令行界面一样绑定Python

该方法已从platform库中删除,因为检测您使用的分发的正确方法更改的速度可能比Python发布计划更快.从上面的错误报告:

stdlib不适合经常改变这种情况的东西.看看我们在过去几年中看到过多少个半标准.尝试在缓慢移动的代码库中遵循这些作为Python stdlib是没有意义的.将功能放入PyPI模块会更好,可以更频繁地更新.