为什么我不能使用 python Popen 从 PHP 获得输出
Why can't I get output from PHP, using python Popen
我有一个程序使用 popen 从 python 调用 PHP,但我没有从我的调用中得到任何标准输出或标准错误。
有问题的行是:
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
当我用 ls 替换 PHP 路径时,它起作用了:
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
当我 运行 来自 shell 的 PHP 命令时,它会产生输出。
作为参考,PHP 文件是:
<?
echo "YAY";
?>%
我解决了我的问题。早些时候我写了文件内容,忘记了 flush() 它,所以当 exec 调用发生时文件是空的。
我有一个程序使用 popen 从 python 调用 PHP,但我没有从我的调用中得到任何标准输出或标准错误。
有问题的行是:
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
当我用 ls 替换 PHP 路径时,它起作用了:
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
当我 运行 来自 shell 的 PHP 命令时,它会产生输出。
作为参考,PHP 文件是:
<?
echo "YAY";
?>%
我解决了我的问题。早些时候我写了文件内容,忘记了 flush() 它,所以当 exec 调用发生时文件是空的。