检查Debian包是否通过Python安装
有没有一种更优雅、更像Python的方式来检查一个软件包是否在Debian系统上安装了?
在bash脚本中,我会这样做:
dpkg -s packagename | grep Status
有没有什么建议可以在Python脚本中做到同样的事情?
8 个回答
2
如果你想检查一个包是否安装了某个Python模块,你可以在一个依赖这个模块的Python脚本里进行测试。具体做法就是尝试导入这个模块,然后看看是否会出现错误:
import sys
try:
import maybe
except ImportError:
print "Sorry, must install the maybe package to run this program."
sys.exit(1)
8
这是一个稍微好一点的、希望更符合习惯用法的bash示例:
import os, subprocess
devnull = open(os.devnull,"w")
retval = subprocess.call(["dpkg","-s","coreutils"],stdout=devnull,stderr=subprocess.STDOUT)
devnull.close()
if retval != 0:
print "Package coreutils not installed."
26
这是一种符合Python风格的方法:
import apt
cache = apt.Cache()
if cache['package-name'].is_installed:
print "YES it's installed"
else:
print "NO it's NOT installed"