当前位置: 首页 > 面试题库 >

检查软件包是否已安装的Python方式

淳于熙云
2023-03-14
问题内容

检查Centos / Redhat中安装的软件包列表的Python方式?

在bash脚本中,我将执行以下操作:

 rpm -qa | grep -w packagename

问题答案:
import sys
import rpm

ts = rpm.TransactionSet()
mi = ts.dbMatch( 'name', sys.argv[1] )
try :
    h = mi.next()
    print "%s-%s-%s" % (h['name'], h['version'], h['release'])
except StopIteration:
    print "Package not found"
  1. TransactionSet()将打开RPM数据库
  2. 没有参数的dbMatch将设置一个匹配迭代器以遍历整套已安装的软件包,您可以在匹配迭代器上调用next来获取下一个条目,即代表一个软件包的标头对象
  3. dbMatch也可以用于查询特定的程序包,您需要传递标签的名称以及要查找的该标签的值:
    dbMatch('name','mysql')
    


 类似资料:
  • 问题内容: 检查软件包是否在Python脚本中安装的好方法是什么?我知道从解释器很容易,但是我需要在脚本中完成。 我想我可以检查安装过程中在系统上是否创建了目录,但是我觉得有更好的方法。我试图确保已安装Skype4Py软件包,如果没有,我将安装它。 我完成支票的想法 检查典型安装路径中的目录 尝试导入软件包,如果抛出异常,则安装软件包 问题答案: 如果您的意思是python脚本,请执行以下操作:

  • 问题内容: 我如何检查Java安装中是否存在像javax.servlet。*这样的包? 问题答案: Java只能告诉您是否可以加载类。它不能告诉您是否存在软件包,因为没有加载软件包,只有类。 唯一的方法是尝试从该包中加载类。例如,对于javax.servlet。*,您可以执行以下操作:

  • 问题内容: 我们需要创建一个程序..实际上我们被要求创建一个软件许可合规性工具....我们如何检查机器内部已安装的软件..是否通过注册表…在搜索时我看到了一个帖子说我们需要研究HKLM的“卸载”子项。 另外,我们是否还从注册表中获取有关该软件是否为免费软件,共享软件的信息? 我们计划使用Python和Mysql做到这一点 问题答案: 正如您已经提到的,可以在注册表中的注册表项下找到(正确)安装的程

  • 本文向大家介绍linux下查看yum/rpm/dpkg某软件是否已安装的方法,包括了linux下查看yum/rpm/dpkg某软件是否已安装的方法的使用技巧和注意事项,需要的朋友参考一下 前言 因为Linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了。 总结起来就是这样几类: 一、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa |

  • 问题内容: 如何找到已安装的node.js / npm 软件包 的版本? 这将打印npm本身的版本: 这将显示一个神秘的错误: 这将 在注册表上 打印软件包版本(即可用的最新版本): 如何获得已 安装的版本 ? 问题答案: 用于本地软件包或全局安装的软件包。 您可以通过传递特定软件包的名称作为参数来查找其版本。例如,将导致: 或者,您可以直接运行而无需将软件包名称作为参数来查看所有软件包的版本:

  • 问题内容: 我有一个文件,其中列出了我的虚拟环境所需的软件包。是否有可能找出文件中提到的所有软件包是否都存在。如果缺少某些软件包,如何找出丢失的软件包? 问题答案: 更新 : 进行更新和改进的方法是通过。有关详细信息,请参见下面的Acumenus答案。 原文 : 这样做的pythonic方法是通过 API。要求以setuptools可以理解的格式编写。例如: 示例代码: