Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP未正确执行python脚本_Php_Python_Linux_Serial Port - Fatal编程技术网

PHP未正确执行python脚本

PHP未正确执行python脚本,php,python,linux,serial-port,Php,Python,Linux,Serial Port,我正在从php页面执行python脚本,如下所示:exec(“python./test.py”) 如果我没有在脚本中打开串行端口,那么该脚本可以正常运行。但是,如果我这样做了,(这就是调用python脚本的第一点),脚本将无法正确执行 如果我调用一个打印语句的简单python脚本- print "This works!" 然后在php页面中获得所需的输出。 但是,如果我打开一个串行端口,我将不再获得“This works!”的输出,并且串行数据不会发送到接收设备- import serial

我正在从php页面执行python脚本,如下所示:
exec(“python./test.py”)

如果我没有在脚本中打开串行端口,那么该脚本可以正常运行。但是,如果我这样做了,(这就是调用python脚本的第一点),脚本将无法正确执行

如果我调用一个打印语句的简单python脚本-

print "This works!"
然后在php页面中获得所需的输出。 但是,如果我打开一个串行端口,我将不再获得“This works!”的输出,并且串行数据不会发送到接收设备-

import serial
ser = serial.Serial("/dev/ttyACM0",9600)
print "This works!"
两个脚本都可以从命令行正常运行


这是php的限制吗?我尝试过其他执行方法,如
popen
system
,但它们对我也不起作用。

也许您的Python执行没有得到完整的错误报告。尝试添加
raiseexception('Boo!')
作为Python程序的第一行,以确定是否存在异常。如果您没有得到异常和回溯,那么您的程序可能在
serial.serial
行失败,但您没有听说过。从命令行运行是在您的权限下完成的。在Apache下运行它是具有Apache权限的doine。检查apache是否可以打开ttyACM0。将exec()更改为system(),以查看输出。@MarcB我该怎么做?@romanewaza再次尝试system(),但无效。运行
python-c'import sys;print>>sys.stderr,“stderr可见”
当我从命令行运行时会出现异常,但从php运行时不会出现异常。编辑:这是在异常之前。如果我在异常之前添加一个print语句,我将得到它的输出。但是它仍然没有输出异常。听起来你得到的是标准输出,而不是标准输出。要么修复您的进程生成,这样您就可以得到stderr,要么包装您的整个Python程序,以便将错误处理转到stdout。好的,将stderr发送到stdout,我现在得到所有错误消息。