PHP shell_exec 与 python naoqi: "qimessaging.socketcache: No more endpoints available after filtering"
PHP shell_exec with python naoqi: "qimessaging.socketcache: No more endpoints available after filtering"
当我在 PHP 中使用 shell_exec
执行脚本时,我似乎无法让我的 python 脚本工作
我在choregraphe中使用虚拟机器人
这是我的代码:
PHP
$command = escapeshellcmd("python test.py");
$output = shell_exec ($command);
echo $output;
Python:
from naoqi import ALProxy
import os,sys
import motion
#import qi.logging
#qi.logging.setLevel(qi.logging.FATAL)
pFractionMaxSpeed=0.4
mp = ALProxy("ALMotion", "127.0.0.1",51712)
JointName = JointNames = ["LShoulderRoll","LShoulderPitch","LElbowYaw","LElbowRoll","LHand"]
Arm1 = [90,0,-90,-85,90]
Arm1 = [ x * motion.TO_RAD for x in Arm1]
mp.post.angleInterpolationWithSpeed(JointNames, Arm1, pFractionMaxSpeed)
如果我只是 运行 通过 cmd python,那么它工作正常并使机器人移动。
我认为这与它是 运行 作为 www-data 用户有关,它弄乱了 naoqi 模块(或类似的东西):link
我只是不确定如何在 windows 中使用 XAMPP 或 WAMP
可能是您的 www-data 用户无法访问端口 51712(或 Choregraphe 的虚拟 nao 使用的任何端口 - 它可能会在会话之间发生变化,您检查过了吗?)。也许您可以从您的 PHP 代码尝试 运行 telnet 127.0.0.1 51712
- 如果这不起作用,qimessaging 也将无法连接到该端口。
当我在 PHP 中使用 shell_exec
执行脚本时,我似乎无法让我的 python 脚本工作我在choregraphe中使用虚拟机器人
这是我的代码: PHP
$command = escapeshellcmd("python test.py");
$output = shell_exec ($command);
echo $output;
Python:
from naoqi import ALProxy
import os,sys
import motion
#import qi.logging
#qi.logging.setLevel(qi.logging.FATAL)
pFractionMaxSpeed=0.4
mp = ALProxy("ALMotion", "127.0.0.1",51712)
JointName = JointNames = ["LShoulderRoll","LShoulderPitch","LElbowYaw","LElbowRoll","LHand"]
Arm1 = [90,0,-90,-85,90]
Arm1 = [ x * motion.TO_RAD for x in Arm1]
mp.post.angleInterpolationWithSpeed(JointNames, Arm1, pFractionMaxSpeed)
如果我只是 运行 通过 cmd python,那么它工作正常并使机器人移动。
我认为这与它是 运行 作为 www-data 用户有关,它弄乱了 naoqi 模块(或类似的东西):link
我只是不确定如何在 windows 中使用 XAMPP 或 WAMP
可能是您的 www-data 用户无法访问端口 51712(或 Choregraphe 的虚拟 nao 使用的任何端口 - 它可能会在会话之间发生变化,您检查过了吗?)。也许您可以从您的 PHP 代码尝试 运行 telnet 127.0.0.1 51712
- 如果这不起作用,qimessaging 也将无法连接到该端口。