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获取Linux发行版名称,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Linux下安装Python3.6及避坑指南

    Python3的安装 1.安装依赖环境 Python3在安装的过程中可能会用到各种依赖库,所以在正式安装Python3之前,需要将这些依赖库先行安装好. yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 2. 下载Python3源代码 下载Python3的

  • Linux部署python爬虫脚本,并设置定时任务的方法

    去年因项目需要,用python写了个爬虫.因爬到的数据需要存到生产环境的PG数据库.所以需要将脚本部署到CentOS服务器,并设置定时任务,自动启动脚本. 实施步骤如下: 1.安装pip(操作系统自带了python2.6可以直接用,但是没有pip) # 下载pip安装包 wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --

  • python同步windows和linux文件

    写python脚本的初衷,每次在windows编辑完文件后,想同步到linux上去,只能够登录服务器,然后再利用网络copy,重复性很大,就想着能不能写一个小脚本帮我同步 逻辑:比对本地和服务器文件的md5,如果md5不一致,则备份服务器上的文件,将本地的给上传上去 代码分为windows端和服务器端,有些东西,都让python一个做了,写着有点累,就想着,能否服务端提供一个端口,windows去调用这个接口,来完成一部分工作 python代码如下: 需要额外安装的包为是paramiko,安装方

  • python获取Linux发行版名称

    我必须从Python脚本中获取Linux发行版名称.dist平台模块中有一个方法: import platform platform.dist() 但在我的Arch Linux下它返回: >>> platform.dist() ('', '', '') 为什么?我怎么能得到这个名字? PS.我必须检查分发是否是基于Debian的. 更新:我在这里找到了Python站点,自2.6以来,dist()已被弃用. >>> platform.linux_distribution(

  • 2016年如何选择Linux发行版

    不管是在企业级应用还是在消费者领域,2015 对于 Linux 来说都是极其重要的一年.作为一个从 2005 年就开始使用 Linux 的老用户,我有幸见证了 Linux 过去这 10 年里的重大发展,并且,我相信它在 2016 年里会更加令人激动.在这篇文章里,我会挑选几个将在 2016 年里大放光彩的最佳发行版给大家介绍一下. 强势归来的发行版:openSUSE SUSE 是 openSUSE 发行版背后的公司,同时也是起步最早的 Linux 公司:它在 Linus Torvalds 发布

  • Linux 发行版和安装的基本知识

    一.Linux发行版的基本知识 虽然Linux的基础是其内核(kernel),但是光有内核还远不是一个完整可用的操作系统环境.这里我们要讲述一些关于Linux发行版的基本要素. Boot manager :boot manager是存在在硬盘主引导记录(aster boot record ,MBR)中的程序,该程序由计算机的BIOS调入执行,完成启动工作.如果你在一个已经安装了Windows或其它系统的机器上安装Linux,boot manager将让你选择启动哪个操作系统.boot manag

  • 常用Linux发行版镜像源配置小结

    最近研究Linux,试了一些Linux发行版,但是大多数发行版的软件源速度都不是很理想.所以我这里干脆做了一个收集,把我用过的一些常用发行版的软件源设置方法做个总结,大家也可以做个参考. Ubuntu 18.04 18.04是目前Ubuntu最新的长期支持版.当然我非常期待4月份推出的20.04长期支持版,支持wireguard这一点就非常吸引人. # 备份官方镜像 cp /etc/apt/sources.list /etc/apt/sources.list.backup # 使用清华镜像源 t

  • python获取linux系统信息的三种示例

    方法一:psutil模块 #!usr/bin/env python # -*- coding: utf-8 -*- import socket import psutil class NodeResource(object): def get_host_info(self): host_name = socket.gethostname() return {'host_name':host_name} def get_cpu_state(self): cpu_count = psutil.cpu

  • python获取linux和windows系统指定接口的IP地址的步骤及代码

    实验目的: 用户输入网卡名称,通过函数返回对应的IPv4和IPv6地址. 实验代码: 步骤一: 由于window系统下网卡名称并不是真正的名字,而真正的ID在注册表SYSTEM\CurrentControlSet\Control\Network{4d36e972-e325-11ce-bfc1-08002be10318}目录下.所以需要通过如下代码,返回接口名称和唯一ID的对应关系. win_ifname.py: import netifaces as ni # import winreg as

  • python获取linux系统信息的三种方法

    方法一:psutil模块 #!usr/bin/env python # -*- coding: utf-8 -*- import socket import psutil class NodeResource(object): def get_host_info(self): host_name = socket.gethostname() return {'host_name':host_name} def get_cpu_state(self): cpu_count = psutil.cpu

  • python获取Linux下文件版本信息、公司名和产品名的方法

    本文实例讲述了python获取Linux下文件版本信息.公司名和产品名的方法,分享给大家供大家参考.具体如下: 区别于前文所述.本例是在linux下得到文件版本信息,主要是通过pefile模块解析文件 中的字符串得到的.代码如下: def _get_company_and_product(self, file_path): """ Read all properties of the given file return them as a dictionary. @retur

  • python获取当前运行函数名称的方法实例代码

    python获取当前运行函数名称的方法实例代码 摘要: c/c++中获取函数所在源码名,函数名和行号的方法很简单 __FILE__,__FUNCTION__和__LINE__ python没有这种语法,但也可以通过某种方法得到,这里给出例子,使用异常信息得到[可能会损失性能] 直接贴代码[可参考python核心编程4.4] #获取调用该函数所在(被调用)的函数名 #author:peterguo@vip.qq.com def get_func_name(): import sys try: ra

  • Python获取linux主机ip的简单实现方法

    本文实例讲述了Python获取linux主机ip的简单实现方法.分享给大家供大家参考,具体如下: python有好几种方法可以获取主机的ip地址.我常用的一种是通过socket.socket().inet_ntoa()来实现,非常方便:但这种方法有个限制就是要把网卡名(比如eth0)作为参数传进来.所以加多了一个条件判断,如果发现以上方法获取ip抛异常时,那就用调起shell命令(ifconfig)和管道,把想要的ip给过滤出来. import socket import fcntl impor

随机推荐