PHP exec命令未从Python脚本返回完整数据

PHP exec命令未从Python脚本返回完整数据,php,python,ssh,centos,exec,Php,Python,Ssh,Centos,Exec,我通过PHP SSH连接到服务器,然后使用exec在该服务器上运行python程序 如果我通过putty连接到该服务器,并通过命令行执行相同的命令,我会得到如下结果: 评估 连接 正在检索数据 1) 报表1 2) 报表2 N) 声明 Python程序是由其他人编写的 当我通过SSH-php连接时,我可以执行$SSH->exec(“ls”),并像在服务器命令行上一样获得完整的结果。但是当我尝试$ssh->exec(“pythonmyscript.py-s语句0”)我无法得到完整的结果,但我得

我通过PHP SSH连接到服务器,然后使用exec在该服务器上运行python程序

如果我通过putty连接到该服务器,并通过命令行执行相同的命令,我会得到如下结果:

评估

连接

正在检索数据

1) 报表1

2) 报表2

N) 声明

Python程序是由其他人编写的

当我通过SSH-php连接时,我可以执行
$SSH->exec(“ls”)
,并像在服务器命令行上一样获得完整的结果。但是当我尝试
$ssh->exec(“pythonmyscript.py-s语句0”)我无法得到完整的结果,但我得到了一条随机线作为输出

一般来说,如果有人遇到过同样的问题并解决了,请告诉我


谢谢

可能是输出缓冲造成的。尝试将
-u
选项添加到Python命令中-这将强制取消对stdout、stdin和stderr的缓冲。

可能是由于缓冲输出造成的。尝试将
-u
选项添加到Python命令中-这将强制取消缓冲stdout、stdin和stderr。

什么随机行?你能举个例子吗?很抱歉,我不能展示输出。但是考虑将23)语句23作为输出。但你应该有这样的输出,什么随机线?你能举个例子吗?很抱歉,我不能展示输出。但是考虑将23)语句23作为输出。但你应该有疑问,这条线在哪里$ssh->exec(“pythonmyscript.py-s语句0”);我想问的另一件事是:如果我通过您的方法实现输出,那么如何正确构建输出?像json或xml一样?在python之后添加
-u
$ssh->exec(“python-u myscript.py-s statement 0 0”)
正确的体系结构?没有任何细节很难说。两者都有它的位置,但是如果代码已经编写好了,我就使用它。这行的哪一行$ssh->exec(“pythonmyscript.py-s语句0”);我想问的另一件事是:如果我通过您的方法实现输出,那么如何正确构建输出?像json或xml一样?在python之后添加
-u
$ssh->exec(“python-u myscript.py-s statement 0 0”)
正确的体系结构?没有任何细节很难说。两者都有它的位置,但是如果代码已经编写好了,我就使用它。