【发布时间】:2016-04-27 10:00:11
【问题描述】:
我正在尝试执行 Python 脚本来获取和设置 ROS 中的参数服务器。当我运行任何其他简单的 Python 脚本(例如打印“Hello”)时,我会取回 PHP 中的值。但是当我运行这段代码时:
#!/usr/bin/env python
import roslib
import rospy
import sys
import re
import string
get = rospy.get_param("param")
print get
我得到一个空的回声。但是,此代码在终端中运行良好!
我在 PHP 中所做的只是:
$output = exec("python path/script.py")
echo $output;
我尝试了 shell_exec,我尝试在命令中使用 python,但没有。我也试过 /usr/bin/python 仍然不能用于这个特定的代码,但一切都适用于简单的打印!
【问题讨论】:
-
你能得到任何错误吗?尝试查找是否存在导致问题的异常 - 例如:
try: get = rospy.get_param("param") except BaseException as e: # save e to file -
rospy之前好像没有初始化过,应该是roslib.rospy还是roslib?我对图书馆一无所知,但我想这可能是错误。 -
@ishaan 这是导入库的方式,正如我已经说过的,这段代码在我运行它时可以完美运行,但是当我从 PHP 运行它时它不起作用。
-
@IliyanBobev 我得到一个空白文档,我测试了它是否记录错误,当我删除 roslib 和 rospy 时它确实记录错误,当它们被导入时没有任何作用。
-
对不起,我无法格式化评论中的代码;只需将
get = rospy.get_param("param")放在try-except 中。在 try 部分中,尝试将 get 的值保存到文本文件中,并在 except 部分中尝试捕获异常详细信息并将其保存到文件中。这样你就会有一个日志。