Мне нужно написать скрипт Python для отправки задания с использованием qsub (SGE).
Команда, которую я хочу выполнить, имеет вид:
qsub -by /usr / bin / L2prod filein fileout
где L2prod - это скомпилированная программа (двоичный файл, это причина опции -by), а filein / fileout - просто строки с именем ввода/выходной файл.Если я открою оболочку и наберу предыдущую строку, все пойдет хорошо.
В моей программе на Python у меня есть:
...
args=['qsub -b y ', L2prod, filein, fileout]
log.info('executing: '+' '.join(map(str,args)))
process=subprocess.Popen(args,shell=True)
...
etc.
и вывод в файле журнала:
ИНФОРМАЦИЯ: job_submit: выполняется: qsub -by / usr / bin / L2prod /data/L1/20180414-222503_L1.txt /data/L2/20180414-222503_L2.txt
ПросмотрВ журнале кажется, что командная строка верна, но я получил следующую ошибку:
qsub: команда, необходимая для двоичного задания
, и задание не было отправлено.
Похоже, опция "-by" была проигнорирована в методе .Popen ().Что я делаю неправильно?Я думал, что опция shell = True исправит это.