У меня есть процедура, которую я запускаю каждое утро, где я хочу запустить последовательность программ.Это выглядит примерно так.(содержание programCaller.py)
programs = [
'program 1',
'program 2',
'program 3'
]
for program in programs:
print('Executing: ' + program)
p = subprocess.Popen('/path/to/directory/' + program)
p.communicate()
Все работало отлично примерно неделю назад.Он общался в режиме реального времени (перк, который я изо всех сил пытался получить в Windows, так как я запускаю его на Mac), и если программа не работает, он переходит к следующему.
Теперь он не будет просто запускаться из IDLE.Тем не менее, он работает просто отлично с терминала "./programCaller.py".
Все программы, конечно же, имеют строки Шебанга и разрешение.Я перепробовал все варианты shell = True, исполняемый, стандартный вывод и другие аргументы, но это не сработает.
Что он делает, так это то, что он мгновенно заканчивает выполнение, давая мне подсказку «>>>», как будто это было сделано.И он не работает в фоновом режиме, так как я протестировал очень простую программу, которая отправляет мне письмо, и она этого не делает.
Что-то должно было измениться, и, возможно, он использует другой исполняемый файл, но это тихий сбой.