Существует ли изящное и больше подобного Python способа проверить, установлен ли пакет на Debian?
В сценарии удара я сделал бы:
dpkg -s packagename | grep Status
Предложения, чтобы сделать то же в сценарии Python?
Если вы проверяете наличие пакета, устанавливающего модуль Python, вы можете проверить это в зависимом скрипте Python - попробуйте импортировать его и посмотрите, не возникнет ли исключение:
import sys
try:
import maybe
except ImportError:
print "Sorry, must install the maybe package to run this program."
sys.exit(1)
Немного более приятная, надеюсь идиоматическая версия вашего примера 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."
Взгляните на команды
. Это очень полезно для запуска вещей из командной строки и получения статуса.
В противном случае, я уверен, что есть какая-то библиотека, которая позволит вам взаимодействовать с apt. python-apt может работать, но он немного сырой. Кажется, проще просто захватить командную строку.