ROS2: ImportError: нет модуля с именем genmsg

Я начал с ROS2, которая в настоящее время находится в альфа-фазе. При сборке пакета ros1_bridge я получил такую ​​ошибку:

Traceback (most recent call last):
  File "bin/ros1_bridge_generate_factories", line 11, in <module>
    from ros1_bridge import generate_cpp
  File "/home/ros/ros2_ws/src/ros2/ros1_bridge/ros1_bridge/__init__.py", line 13, in <module>
    import genmsg
ImportError: No module named 'genmsg'

Это довольно странно. На одном компьютере я без проблем создаю один и тот же код. Единственное, что изменилось: я установил ROS Kinetic.

В синаптике я обнаружил, что теперь у меня установлены два разных пакета genmsg: python-genmsg и ros-kinetic-genmsg. Первый зависит от ROS2, второй - от ROS. Так что оба могут быть необходимы. Я думаю, что это материал Python, и я не знаком с Python. Что я могу сделать, чтобы он снова заработал?


person Alex44    schedule 01.09.2016    source источник


Ответы (1)


Это происходит, когда зависимости для ROS и ROS2 установлены на одном компьютере. Особенно пакет python-genmsg и ros-kinetic-genmsg. genmsg теперь можно найти в этих местах:

  1. /opt/ros/kinetic/lib/python2.7/dist-packages
  2. /usr/lib/python2.7/dist-packages

Это вызовет проблемы у Python. В отношении того, что ros1_bridge будет соответствовать ROS Kinetic, переменная среды Python PYTHONPATH будет установлена ​​на Kinetic:

export PYTHONPATH=/opt/ros/kinetic/lib/python2.7/dist-packages/

Теперь перезапустите сборку, и сборка запустится ...

person Alex44    schedule 01.09.2016