У меня есть программа, которая вызывает PHP из python, с popen, и я не получаю ни stdout, ни stderr из моих вызовов.
Проблемные линии:
task = subprocess.Popen(
['/usr/bin/php', exec_path],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
env=env
)
stdout_str, stderr_str = task.communicate()
task_result = task.returncode
Когда я заменяю путь PHP на ls, он работает:
task = subprocess.Popen(
['/bin/ls', exec_path],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
env=env
)
stdout_str, stderr_str = task.communicate()
task_result = task.returncode
# Works as expected
И когда я запускаю команду PHP из оболочки, она производит вывод.
Для справки, файл PHP:
<?
echo "YAY";
?>%
Я исправил свою проблему. Ранее я написал содержимое файла и забыл его очистить (), чтобы при вызове exec файл был пустым.
Других решений пока нет …