首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查Linux发行版名称

检查Linux发行版名称
EN

Stack Overflow用户
提问于 2010-05-03 07:41:24
回答 14查看 34.5K关注 0票数 40

我必须从Python脚本中获得Linux发行版的名称。平台模块中有一个dist方法:

代码语言:javascript
复制
import platform
platform.dist()

但是在我的Arch Linux下,它返回:

代码语言:javascript
复制
>>> platform.dist()
('', '', '')

为什么?我怎么知道名字?

PS。我得检查一下这个发行版是否基于Debian。

更新:我在这里发现了Python站点,从2.6开始就不再推荐dist()了。

代码语言:javascript
复制
>>> platform.linux_distribution()
('', '', '')
EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2010-05-03 07:49:45

这在Ubuntu上适用于我:

代码语言:javascript
复制
('Ubuntu', '10.04', 'lucid')

然后,我使用strace来了解平台模块究竟在做什么来查找发行版,下面是这样的部分:

代码语言:javascript
复制
open("/etc/lsb-release", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=102, ...}) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=102, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76b1000
read(3, "DISTRIB_ID=Ubuntu\nDISTRIB_RELEAS"..., 8192) = 102
read(3, "", 4096)                       = 0
read(3, "", 8192)                       = 0
close(3)                                = 0

因此,有/etc/lsb-release包含这个信息,它来自Ubuntu的Debian基本文件包。

票数 12
EN

Stack Overflow用户

发布于 2010-05-03 07:45:24

这里是我发现的:

platform.linux_distribution 尝试确定Linux发行版名称的名称。

它说,从2.6开始,platform.dist就不再受欢迎了,您必须在Python2中使用platform.linux_distribution (但在Python3.5中也不推荐)。

票数 20
EN

Stack Overflow用户

发布于 2017-04-01 13:44:35

platform.linux_distribution没有识别某些发行版的原因是发行版本身提供版本相关信息的非标准化方式。

我编写了一个名为distro (现在由pip使用)的包,目的是取代distro.linux_distribution。它可以在许多发行版上工作,这些发行版在使用platform时可能返回奇怪的或空的元组。

https://github.com/nir0s/distro (distro,on pypi)

它提供了一个更详细的API来检索与发行有关的信息。

代码语言:javascript
复制
$ python
Python 2.7.12 (default, Nov  7 2016, 11:55:55) 
[GCC 6.2.1 20160830] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import distro
>>> distro.linux_distribution()
(u'Antergos Linux', '', u'ARCHCODE')

顺便说一下,platform.linux_distribution将在Python3.7中删除。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2756737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档