为什么我不能使用python Popen从PHP获得输出
我有一个用popen从python调用PHP的程序,我没有从调用中得到任何stdout或stderr 问题在于:为什么我不能使用python Popen从PHP获得输出,php,python,shell,popen,Php,Python,Shell,Popen,我有一个用popen从python调用PHP的程序,我没有从调用中得到任何stdout或stderr 问题在于: task = subprocess.Popen( ['/usr/bin/php', exec_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env ) stdout_str, stderr_str = task.communicate() t
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";
?>%
我解决了我的问题。早些时候,我编写了文件内容,但忘了刷新它,因此在执行调用时,文件是空的。在这两种情况下,执行路径都是相同的,对吗?我想知道这是否是一个权限问题。但是我仍然能够从命令行执行该文件,如php/tmp/regraphd_testing_dir_A5wdrS/querys/tmp0AKqI6.php,但是是的,路径与php文件开头的路径相同,结尾的%是什么?哦,这只是shell表示没有新行