Python 检查是否安装了程序列表中的程序
在Ubuntu 16.04和Python 2.7.12上运行。 我想检查一下,机器上是否安装了程序列表。 到目前为止,我还没有这段代码:Python 检查是否安装了程序列表中的程序,python,bash,python-2.7,Python,Bash,Python 2.7,在Ubuntu 16.04和Python 2.7.12上运行。 我想检查一下,机器上是否安装了程序列表。 到目前为止,我还没有这段代码: import subprocess program = ['rsync', 'locate'] for x in program: cmd = "dpkg-query -W " + x + " | grep -c " + x process = subprocess.Popen(cmd.split(), stdout=subprocess.P
import subprocess
program = ['rsync', 'locate']
for x in program:
cmd = "dpkg-query -W " + x + " | grep -c " + x
process = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
output, error = process.communicate()
如果我没有将程序用作字符串变量,则可以运行此命令:
exists = subprocess.call("dpkg-query -W rsync | grep -c 'rsync'", shell=True)
它返回0/1。您能帮助我如何构建在程序安装或未安装时返回的循环吗?可能在5行左右,我只需要简单的True/False(0/1)。谢谢我建议使用pythons
apt
。它们具有您当前似乎需要的所有功能。我目前没有时间提供示例-如果需要,我将稍后提供。您可以使用命令-v
import subprocess
list_cmd = ['rsync', 'locate', 'celery']
for cmd in list_cmd:
exist = subprocess.call('command -v '+ cmd + '>> /dev/null', shell=True)
if exist == 0:
print "I've got " + cmd
要使用此解决方案,您的CMD(列表中)必须在shell中可执行。是的,我以前使用过apt,但我发现它有点太慢,需要几秒钟才能获取apt.cache。因此,我希望避免使用apt模块。还有一件事,apt模块在默认情况下没有安装,至少在Ubuntu中没有,所以我必须在使用它之前安装它。我希望做这件事尽可能简单快捷。谢谢你的建议是的,非常好用,谢谢!我只需更改Python2.7的print命令语法(print“I've got”+cmd)