【问题标题】:PHP shell_exec with python naoqi: "qimessaging.socketcache: No more endpoints available after filtering"带有python naoqi的PHP shell_exec:“qimessaging.socketcache:过滤后没有更多可用的端点”
【发布时间】:2018-09-04 00:30:01
【问题描述】:

当我使用 shell_exec 在 PHP 中执行 python 脚本时,我似乎无法正常工作

我在编舞中使用虚拟机器人

这是我的代码: 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 进行操作

【问题讨论】:

    标签: php python robot nao-robot


    【解决方案1】:

    可能是您的 www-data 用户无权访问端口 51712(或 Choregraphe 的虚拟 nao 正在使用的任何端口 - 它可能会在会话之间发生变化,您检查过吗?)。也许您可以尝试从您的 PHP 代码运行 telnet 127.0.0.1 51712 - 如果这不起作用,qimessaging 也将无法连接到该端口。

    【讨论】:

    • 我在 9559 端口上用一个真正的 nao 机器人进行了测试,它工作正常。我无法让 telnet 命令在 Windows 上工作。但由于它与实际的机器人一起工作,我猜测 www-data 用户无权访问虚拟机器人端口
    • 好的;你检查虚拟机器人的端口没有改变吗?我认为每次关闭和打开 Choregraphe 时都会发生变化。
    • 是的。端口保持不变。我正常测试了python脚本,然后用shell_exec进行了测试。当我正常测试 python 时它可以工作,但是使用 shell_exec 它会给出错误
    猜你喜欢
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    • 1970-01-01
    相关资源
    最近更新 更多