В python Я пытаюсь выполнить fabfile, и я получаю следующую ошибку из вывода subproccess. Я установил ткань, используя легкую установку. Если я запускаю код из командной строки, он работает. Из python нет. Я предполагаю, что есть проблема с тем, как я использую команду Popen?Python не может быть выполнена из python с использованием подпроцесса
/bin/sh: 1: fab: not found
Ниже, как я начинаю ткань из питона:
cmd = """fab -H 111.111.111.111 aws_bootstrap initial_chef_run:aws_server.json,aws-test,development -w """
os.chdir(fab_path) #change to the dir where the fabfile is located
p = subprocess.Popen(cmd, shell=True,stderr=subprocess.STDOUT,stdout=subprocess.PIPE)
PS Я добавил ниже к Popen, но получить ошибку ниже:
executable="/bin/bash"
/bin/bash: fab: command not found
Из командной строки я получаю ниже, что означает, что терминал может найти fab.
fab
Fatal error: Couldn't find any fabfiles!
Remember that -f can be used to specify fabfile path, and use -h for help.
Aborting.
Использование команды execute - лучший вариант, чем вызов fabfile через popen. – tobltobs
Я бы попытался удалить параметр 'stdout' - с этим тогда команда не должна выполняться немедленно (только когда вы должны были сделать что-то вроде call' p.communicate() ') – robjohncox