php - 带有python naoqi的PHP shell_exec:“qimessaging.socketcache:过滤后没有更多可用的端点”
问题描述
当我使用 shell_exec 在 PHP 中执行它时,我似乎无法让我的 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 正在使用的任何端口 - 它可能会在会话之间发生变化,您检查过吗?)。也许您可以尝试telnet 127.0.0.1 51712
从您的 PHP 代码运行 - 如果这不起作用,qimessaging 也将无法连接到该端口。
推荐阅读
- javascript - 使用反应的进度条
- heroku - Heroku 帐户因内置身份验证而锁定失败
- python - discord.py TypeError:对象锁不能用于“等待”表达式
- unity3d - 切换 ARFoundatin (ARCore / ARKit) <-> Google Cardboard 不起作用
- javascript - 如何添加到数组其他数组
- c# - 在不同环境的 Windows 服务中发布 ASP.Net Core
- database - 通过终端设置 Magento 时数据库连接被拒绝
- c - 低功耗模式下的变量
- sql - 根据 SQL Server 中可用的最新日期定义车辆当前状况
- java - java.lang.NoSuchMethodError: org.apache.logging.log4j.ThreadContext.getThreadContextMap()