如何同时获取ROS环境变量的两条路径?

时间:2018-12-26 21:26:16

标签: python linux bash ubuntu ros

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

  

回溯(最近通话最近):
    
中的文件“ / opt / ros / kinetic / bin / rqt_image_view”,第16行       plugin_argument_provider = add_arguments))
    main中的文件“ /opt/ros/kinetic/lib/python2.7/dist-packages/rqt_gui/main.py”,第59行       返回super(Main,self).main(argv,standalone = standalone,plugin_argument_provider = plugin_argument_provider,plugin_manager_settings_prefix = str(hash(os.environ ['ROS_PACKAGE_PATH'])))))
    main中的文件“ /opt/ros/kinetic/lib/python2.7/dist-packages/qt_gui/main.py”,第338行
      从python_qt_binding导入QT_BINDING
  ImportError:无法导入名称QT_BINDING

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

  

source /opt/ros/kinetic/setup.bash
  来源/home/kelu/Dropbox/GET_Lab/leap_ws/devel/setup.bash --extend
  来源/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:/快照/ 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

有人可以告诉我如何解决此问题吗?我已经在Google搜索了5个小时,还没有找到解决方法。

1 个答案:

答案 0 :(得分:0)

尝试的不同解决方案:

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

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