Проверьте, установлен ли пакет Debian из Python

Существует ли изящное и больше подобного Python способа проверить, установлен ли пакет на Debian?

В сценарии удара я сделал бы:

dpkg -s packagename | grep Status

Предложения, чтобы сделать то же в сценарии Python?

17
задан Ciro Santilli 新疆改造中心法轮功六四事件 18 November 2019 в 16:47
поделиться

3 ответа

Если вы проверяете наличие пакета, устанавливающего модуль Python, вы можете проверить это в зависимом скрипте Python - попробуйте импортировать его и посмотрите, не возникнет ли исключение:

import sys
try:
    import maybe
except ImportError:
    print "Sorry, must install the maybe package to run this program."
    sys.exit(1)
3
ответ дан 30 November 2019 в 12:50
поделиться

Немного более приятная, надеюсь идиоматическая версия вашего примера 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."
3
ответ дан 30 November 2019 в 12:50
поделиться

Взгляните на команды . Это очень полезно для запуска вещей из командной строки и получения статуса.

В противном случае, я уверен, что есть какая-то библиотека, которая позволит вам взаимодействовать с apt. python-apt может работать, но он немного сырой. Кажется, проще просто захватить командную строку.

1
ответ дан 30 November 2019 в 12:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: