错误如下
Traceback (most recent call last):
File "/opt/ros/melodic/share/gencpp/cmake/../../../lib/gencpp/gen_cpp.py", line 43, in <module>
import genmsg.template_tools
File "/opt/ros/melodic/lib/python2.7/dist-packages/genmsg/template_tools.py", line 39, in <module>
import em
ModuleNotFoundError: No module named 'em'
realsense/realsense2_camera/CMakeFiles/realsense2_camera_generate_messages_cpp.dir/build.make:63: recipe for target '/home/szyd/catkin_ws/devel/include/realsense2_camera/IMUInfo.h' failed
make[2]: *** [/home/szyd/catkin_ws/devel/include/realsense2_camera/IMUInfo.h] Error 1
make[2]: *** Waiting for unfinished jobs....
Traceback (most recent call last):
File "/opt/ros/melodic/share/gencpp/cmake/../../../lib/gencpp/gen_cpp.py", line 43, in <module>
import genmsg.template_tools
File "/opt/ros/melodic/lib/python2.7/dist-packages/genmsg/template_tools.py", line 39, in <module>
import em
ModuleNotFoundError: No module named 'em'
realsense/realsense2_camera/CMakeFiles/realsense2_camera_generate_messages_cpp.dir/build.make:70: recipe for target '/home/szyd/catkin_ws/devel/include/realsense2_camera/Extrinsics.h' failed
make[2]: *** [/home/szyd/catkin_ws/devel/include/realsense2_camera/Extrinsics.h] Error 1
CMakeFiles/Makefile2:2777: recipe for target 'realsense/realsense2_camera/CMakeFiles/realsense2_camera_generate_messages_cpp.dir/all' failed
make[1]: *** [realsense/realsense2_camera/CMakeFiles/realsense2_camera_generate_messages_cpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 54%] Built target realsense2_camera_generate_messages_eus
[ 58%] Linking CXX shared library /home/szyd/catkin_ws/devel/lib/libddynamic_reconfigure.so
[ 58%] Built target ddynamic_reconfigure
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed
秉持着缺什么装什么的原则
python3 -m pip install em
然后继续编译,结果
Traceback (most recent call last):
File "/opt/ros/melodic/share/gencpp/cmake/../../../lib/gencpp/gen_cpp.py", line 50, in <module>
sys.argv, msg_template_map, srv_template_map)
File "/opt/ros/melodic/lib/python2.7/dist-packages/genmsg/template_tools.py", line 213, in generate_from_command_line_options
generate_from_file(argv[1], options.package, options.outdir, options.emdir, options.includepath, msg_template_dict, srv_template_dict)
File "/opt/ros/melodic/lib/python2.7/dist-packages/genmsg/template_tools.py", line 154, in generate_from_file
_generate_msg_from_file(input_file, output_dir, template_dir, search_path, package_name, msg_template_dict)
File "/opt/ros/melodic/lib/python2.7/dist-packages/genmsg/template_tools.py", line 99, in _generate_msg_from_file
search_path)
File "/opt/ros/melodic/lib/python2.7/dist-packages/genmsg/template_tools.py", line 77, in _generate_from_spec
interpreter = em.Interpreter(output=ofile, globals=g, options={em.RAW_OPT:True,em.BUFFERED_OPT:True})
AttributeError: module 'em' has no attribute 'Interpreter'
realsense/realsense2_camera/CMakeFiles/realsense2_camera_generate_messages_cpp.dir/build.make:63: recipe for target '/home/szyd/catkin_ws/devel/include/realsense2_camera/IMUInfo.h' failed
make[2]: *** [/home/szyd/catkin_ws/devel/include/realsense2_camera/IMUInfo.h] Error 1
make[2]: *** Deleting file '/home/szyd/catkin_ws/devel/include/realsense2_camera/IMUInfo.h'
CMakeFiles/Makefile2:2777: recipe for target 'realsense/realsense2_camera/CMakeFiles/realsense2_camera_generate_messages_cpp.dir/all' failed
make[1]: *** [realsense/realsense2_camera/CMakeFiles/realsense2_camera_generate_messages_cpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 70%] Linking CXX executable /home/szyd/catkin_ws/devel/lib/ddynamic_reconfigure/test_bool_dynamic_reconfigure_server
[ 70%] Built target test_bool_dynamic_reconfigure_server
[ 75%] Linking CXX executable /home/szyd/catkin_ws/devel/lib/ddynamic_reconfigure/ddynamic_reconfigure_auto_update_test
[ 75%] Built target ddynamic_reconfigure_auto_update_test
[ 79%] Linking CXX executable /home/szyd/catkin_ws/devel/lib/ddynamic_reconfigure/fake_dynamic_reconfigure_server
[ 79%] Built target fake_dynamic_reconfigure_server
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed
这时候,会想到是不是因为python中存在模块名相同的包,导致了这个错误
查完资料后发现,em 和 empy 在导入时名字都是 import em
所以我们只需要这样,这样,然后再这样就能编译成功编译啦
python3 -m uninstall em
python3 -m install empy