【ROS2】ModuleNotFoundError: No module named ‘learning_interface.learning_interface_s__rosidl_typesupp

最近学习古月居的ROS2中遇到一个问题:
在运行ros2 run learning_service service_adder_server时遇到的,

ModuleNotFoundError: No module named 'learning_interface.learning_interface_s__rosidl_typesupport_c'

具体的报错信息是:

Traceback (most recent call last):
  File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_generator_py/import_type_support_impl.py", line 46, in import_type_support
    return importlib.import_module(module_name, package=pkg_name)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'learning_interface.learning_interface_s__rosidl_typesupport_c'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/sunx/ros_humble/install/learning_service/lib/learning_service/service_adder_server", line 33, in <module>
    sys.exit(load_entry_point('learning-service==0.0.0', 'console_scripts', 'service_adder_server')())
  File "/home/sunx/ros_humble/install/learning_service/lib/python3.10/site-packages/learning_service/service_adder_server.py", line 25, in main
    node = adderServer("service_adder_server")       # 创建ROS2节点对象并进行初始化
  File "/home/sunx/ros_humble/install/learning_service/lib/python3.10/site-packages/learning_service/service_adder_server.py", line 16, in __init__
    self.srv = self.create_service(AddTwoInts, 'add_two_ints', self.adder_callback)    # 创建服务器对象(接口类型、服务名、服务器回调函数)
  File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/node.py", line 1458, in create_service
    check_is_valid_srv_type(srv_type)
  File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/type_support.py", line 51, in check_is_valid_srv_type
    check_for_type_support(srv_type)
  File "/opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/type_support.py", line 29, in check_for_type_support
    msg_or_srv_type.__class__.__import_type_support__()
  File "/home/sunx/ros_humble/install/learning_interface/lib/python3.11/site-packages/learning_interface/srv/_add_two_ints.py", line 284, in __import_type_support__
    module = import_type_support('learning_interface')
  File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_generator_py/import_type_support_impl.py", line 48, in import_type_support
    raise UnsupportedTypeSupport(pkg_name)
rosidl_generator_py.import_type_support_impl.UnsupportedTypeSupport: Could not import 'rosidl_typesupport_c' for package 'learning_interface'
[ros2run]: Process exited with failure 1

不知道怎么解决这个问题。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回答: 在Ubuntu上使用ROS2时,出现ModuleNotFoundError: No module named 'rosidl_generator_cpp'的错误通常是由于缺少rosidl_generator_cpp包引起的。为了解决这个问题,你可以按照以下步骤进行操作。 首先,确保你已经安装了ROS2的所有依赖项。你可以使用以下命令来安装ROS2的基本依赖项: ``` sudo apt install ros-<distro>-desktop ``` 请将`<distro>`替换为你正在使用的ROS2版本,比如`foxy`或`galactic`。 如果你已经安装了ROS2的所有依赖项,但仍然出现了ModuleNotFoundError: No module named 'rosidl_generator_cpp'的错误,那么你可以尝试以下方法: 1. 确保你的ROS2环境变量已经正确设置。你可以通过运行以下命令来检查: ``` printenv | grep ROS ``` 确保ROS2相关的环境变量(如ROS_DISTRO)已经正确设置。 2. 如果你的ROS2环境变量已经正确设置,但仍然出现了ModuleNotFoundError: No module named 'rosidl_generator_cpp'的错误,那么可能是因为rosidl_generator_cpp包没有正确安装。你可以尝试使用以下命令来安装rosidl_generator_cpp包: ``` pip install rosidl_generator_cpp ``` 确保你使用的是正确的pip版本(比如pip3)。 通过以上步骤,你应该能够解决ModuleNotFoundError: No module named 'rosidl_generator_cpp'的错误。如果问题仍然存在,请确保你的ROS2安装正确,并且所有的依赖项都已经正确安装。如果问题仍然无法解决,你可以参考ROS2的官方文档或者在ROS2的论坛上寻求帮助。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [ModuleNotFoundError: No module namedrosbag‘](https://blog.csdn.net/qq_42178122/article/details/124851705)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [ROS 报错 ModuleNotFoundError: No module namedrospkg‘](https://blog.csdn.net/lievech/article/details/122299605)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SUNX-T

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值