Моя программа не просто импортирует модули, иногда я вызываю их через терминал. Я хотел бы добавить тесты в начало программы, чтобы они «быстро проваливались», если программы не установлены.
Очевидно, я могу просто сделать:
def try_load_module():
try:
import module
return True
except ImportError:
return False
Но как насчет модулей, вызываемых через терминал? Кажется неуклюжим и хрупким использовать что-то вроде:
def try_call_module():
output = subprocess.Popen(['module', '--version'], stdout=subprocess.PIPE).communicate()[0]
# Check version number is greater than 2
if int(output[0]) >= 2:
return True
return False
Спасибо за любую помощь.
РЕДАКТИРОВАТЬ: Поскольку я использую Linux, было бы хорошей идеей проверить bashrc, чтобы увидеть, может ли модуль вызываться?