我从目前处于 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 不熟悉。我该怎么做才能让它再次运行?
最佳答案
这发生在为 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/
现在重新启动构建,构建现在运行...
关于python - ROS2: ImportError: 没有名为 genmsg 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39281644/