首页 > 解决方案 > 如何同时为 ROS 环境变量获取两条路径?

问题描述

我在 ROS 中使用 rqt_image_view 包时遇到问题。每次我在终端 输入rqt_image_view或输入时,它都会返回:rosrun rqt_image_view rqt_image_view

回溯(最后一次调用):
文件“/opt/ros/kinetic/bin/rqt_image_view”,第 16 行,在
plugin_argument_provider=add_arguments 中))
文件“/opt/ros/kinetic/lib/python2.7/dist-packages/ rqt_gui/main.py",第 59 行,在 main 返回 super(Main, self).main(argv,standalone=standalone, plugin_argument_provider=plugin_argument_provider, plugin_manager_settings_prefix=str(hash(os.environ['ROS_PACKAGE_PATH'])))
文件“/opt/ros/kinetic/lib/python2.7/dist-packages/qt_gui/main.py”,第 338 行,main
from python_qt_binding import QT_BINDING
ImportError: cannot import name QT_BINDING

在 /.bashrc 文件中,我有源代码:

source /opt/ros/kinetic/setup.bash
source /home/kelu/Dropbox/GET_Lab/leap_ws/devel/setup.bash --extend
source /eda/gazebo/setup.bash --extend

它们是ROS的默认路径,我自己的工作空间,我们大学的机器人模拟器。我必须使用所有这些。我已经用这个环境变量设置完成了很多项目。但是,当我今天想使用包 rqt_image_view 时,它会返回上述错误信息。

当我运行时echo $ROS_PACKAGE_PATH,我得到回报:

/eda/gazebo/ros/kinetic/share:/home/kelu/Dropbox/GET_Lab/leap_ws/src:/opt/ros/kinetic/share

echo $PATH

/usr/local/cuda/bin:/opt/ros/kinetic/bin:/usr/local/cuda/bin:/usr/local/cuda/bin:/home/kelu/bin:/home/kelu/.local /bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

然后我只 /opt/ros/kinetic/setup.bash获取 rqt_image_view 包运行!!
看来,如果我想使用 rqt_image_view,那么我不能同时/opt/ros/kinetic/setup.bash获取两者/home/kelu/Dropbox/GET_Lab/leap_ws/devel/setup.bash

有人可以告诉我如何解决这个问题吗?我已经在谷歌搜索了 5 个小时,但没有找到解决方案。

标签: pythonlinuxbashubunturos

解决方案


尝试不同的解决方案:

  • 这听起来像是第一个路径/eda/gazebo/ros/kinetic/share,或者/home/kelu/Dropbox/GET_Lab/leap_ws/src有一个rqt_image_view正在使用的包。尝试删除该依赖项。
  • 您是否尝试过切换正在获取的源文件?这取决于rqt_image_view包的构建方式,例如通过源代码或通过包管理器构建。

最初,听起来好像是搜索路径存在问题或运行了错误的包,因为该包使用默认的 ROS 环境设置。


推荐阅读