python獲取Linux發行版名稱


我必須從Python腳本中獲取Linux發行版名稱。dist平台模塊中有一個方法:

import platform platform.dist() 

但在我的Arch Linux下它返回:

>>> platform.dist() ('', '', '') 

為什么?我怎么能得到這個名字?

PS。我必須檢查分發是否是基於Debian的。


更新:我在這里找到了Python站點,自2.6以來,dist()已被棄用。

>>> platform.linux_distribution() ('', '', '') 

 

解決方案


這對我在Ubuntu上有用:

('Ubuntu', '10.04', 'lucid')

然后我常常strace找出平台模塊正在做什么來查找分布,這是這部分:

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基礎文件包。

本文首發於Python黑洞網,博客園同步跟新


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM