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

标签 python ros ros2

我从目前处于 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 不熟悉。我该怎么做才能让它再次运行?

最佳答案

这发生在为 ROSROS2 安装依赖项时 机器。特别是 python-genmsgros-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/

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

关于python - ROS2: ImportError: 没有名为 genmsg 的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39281644/

相关文章:

python - 带有视频识别对象的 HOGDescriptor

python - 在 Ubuntu 14.04 (Beaglebone Black) 上使用带有 ROS 的 python Adafruit_BBIO GPIO 时出错

ubuntu - 安装 ROS2 "E: Unable to locate package ros-foxy-desktop"出现问题

python - 使用 Pandas 以更有效的方式在后续行之间应用函数

python - 如何用python解压内存中的.tar.bz2

python - 显示所有字节的十六进制值,即使存在 ASCII 字符

c++ - 如何在ros2中从rosbag2读取数据

python - 在 ROS 之外使用 ROS 消息类

multicast - 具有多播和单播的 DDS 配置

ubuntu - 使用 ros2 主题列表时可以看到主题,但无法通过网络回显?