ROS2:ImportError:没有名为 genmsg 的模块

Posted

技术标签:

【中文标题】ROS2:ImportError:没有名为 genmsg 的模块【英文标题】:ROS2: ImportError: No module named genmsg 【发布时间】:2016-09-01 22:11:31 【问题描述】:

我从目前处于 alpha 阶段的 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

我在 synaptic 中发现我现在安装了两个不同的 genmsg 包:python-genmsgros-kinetic-genmsg。第一个是 ROS2 的依赖项,第二个是 ROS 的依赖项。所以可能两者都是必要的。我认为那是 Python 的东西,我不熟悉 Python。我该怎么做才能让它再次运行?

【问题讨论】:

【参考方案1】:

当为 ROSROS2 安装依赖项时会发生这种情况 机器。尤其是包python-genmsgros-kinetic-genmsggenmsg 现在可以在这些地方找到:

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

这会给 Python 带来麻烦。关于 ros1_bridge 应适合 ROS Kinetic 环境 Python 变量 PYTHONPATH 将设置为 Kinetic 之一:

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

现在重新启动构建,构建现在运行...

【讨论】:

以上是关于ROS2:ImportError:没有名为 genmsg 的模块的主要内容,如果未能解决你的问题,请参考以下文章

为啥 ImportError:没有名为 lightgbm 的模块

ImportError:没有名为瓶子的模块

ImportError:没有名为枚举的模块

ImportError:没有名为“appdirs”的模块

ImportError:没有名为 websocket 的模块

ImportError:没有名为“backports”的模块