解决编译ros2功能包报错ModuleNotFoundError: No module named ‘em‘

问题描述

在编写ros2项目中,自定义数据接口功能包,进行编译时出现报错提示

colcon build --packages-select robot_interfaces

报错内容

问题定位

通过查看报错内容,很明显发现是缺少em模块导致的,解决思路那就是下载安装em模块呗

根据网上搜索查询如何安装em模块,总结两种方式

1.这种是一个全局管理员身份安装的方法,如果你是基于系统python解释器,可以尝试一下

sudo apt-get install python-empy

2. 如果上一步没成功或者你是基于python虚拟环境,尝试运行这个命令安装

pip install empy

很遗憾的是,虽然通过以上方式解决了没有em模块的问题,但是我这边又遇到新的报错

这个时候很多小伙伴们没有仔细看报错的内容,就以为 安装empy模块是没用的,就放弃了,其实报错的内容已经发生了变化

根据报错的类型发现是提示这个em模块没有找到属性和方法,问题再次定位到em模块,根据我的经验判断,一定是这个版本的em与当前的python版本不兼容所导致(这是一个利用python开发时常见的问题-----第三方库版本不兼容

(base) a1@1:~/桌面/n10p$ colcon build --symlink-install Starting >>> lslidar_msgs --- stderr: lslidar_msgs CMake Error at /opt/ros/humble/share/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake:59 (message): execute_process(/home/a1/miniconda3/bin/python3 -m rosidl_adapter --package-name lslidar_msgs --arguments-file /home/a1/桌面/n10p/build/lslidar_msgs/rosidl_adapter__arguments__lslidar_msgs.json --output-dir /home/a1/桌面/n10p/build/lslidar_msgs/rosidl_adapter/lslidar_msgs --output-file /home/a1/桌面/n10p/build/lslidar_msgs/rosidl_adapter/lslidar_msgs.idls) returned error code 1: Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/__main__.py", line 19, in <module> sys.exit(main()) ~~~~^^ File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/main.py", line 53, in main abs_idl_file = convert_to_idl( pathlib.Path(basepath), args.package_name, pathlib.Path(relative_path), output_dir) File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/__init__.py", line 18, in convert_to_idl from rosidl_adapter.msg import convert_msg_to_idl File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/msg/__init__.py", line 16, in <module> from rosidl_adapter.resource import expand_template File "/opt/ros/humble/local/lib/python3.10/dist-packages/rosidl_adapter/resource/__init__.py", line 19, in <module> import em ModuleNotFoundError: No module named 'em' Call Stack (most recent call first): /opt/ros/humble/share/rosidl_cmake/cmake/rosidl_generate_interfaces.cmake:130 (rosidl_adapt_interfaces) CMakeLists.txt:30 (rosidl_generate_interfaces) --- Failed <<< lslidar_msgs [7.87s, exited with code 1] Summary: 0 packages finished [9.31s] 1 package failed: lslidar_msgs 1 package had stderr output: lslidar_msgs 1 package not processed
最新发布
07-25
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值