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-genmsg
和 ros-kinetic-genmsg
。第一个是 ROS2 的依赖项,第二个是 ROS 的依赖项。所以可能两者都是必要的。我认为那是 Python 的东西,我不熟悉 Python。我该怎么做才能让它再次运行?
【问题讨论】:
【参考方案1】:当为 ROS 和 ROS2 安装依赖项时会发生这种情况
机器。尤其是包python-genmsg
和ros-kinetic-genmsg
。
genmsg
现在可以在这些地方找到:
-
/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 的模块