ROS 'catkin_make' 命令出错

之前,我在自己的电脑上(新安装的ubuntu16.04)装好了ROS,用catkin_make编译成功了,但是用一样的方法在实验室的电脑上编译就报错,后来发现和之前装过的Anaconda有关系。
ROS 进行 catkin_make 时报错如下:

Traceback (most recent call last):
File “/opt/ros/kinetic/share/gencpp/cmake/…/…/…/lib/gencpp/gen_cpp.py”, line 41, in
import genmsg.template_tools
File “/opt/ros/kinetic/lib/python2.7/dist-packages/genmsg/template_tools.py”, line 39, in
import em
ModuleNotFoundError: No module named ‘em’
Traceback (most recent call last):
File “/opt/ros/kinetic/share/gencpp/cmake/…/…/…/lib/gencpp/gen_cpp.py”, line 41, in
import genmsg.template_tools
File “/opt/ros/kinetic/lib/python2.7/dist-packages/genmsg/template_tools.py”, line 39, in
import em
ModuleNotFoundError: No module named ‘em’
ROS-Academy-for-Beginners/service_demo/CMakeFiles/service_demo_generate_messages_cpp.dir/build.make:63: recipe for target ‘/home/chenyr/ROS/catkin_ws/devel/include/service_demo/Greeting.h’ failed
make[2]: *** [/home/chenyr/ROS/catkin_ws/devel/include/service_demo/Greeting.h] Error 1
ROS-Academy-for-Beginners/topic_demo/CMakeFiles/topic_demo_generate_messages_cpp.dir/build.make:62: recipe for target ‘/home/chenyr/ROS/catkin_ws/devel/include/topic_demo/gps.h’ failed
make[2]: *** [/home/chenyr/ROS/catkin_ws/devel/include/topic_demo/gps.h] Error 1
CMakeFiles/Makefile2:1271: recipe for target ‘ROS-Academy-for-Beginners/service_demo/CMakeFiles/service_demo_generate_messages_cpp.dir/all’ failed
make[1]: *** [ROS-Academy-for-Beginners/service_demo/CMakeFiles/service_demo_generate_messages_cpp.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs…
CMakeFiles/Makefile2:1737: recipe for target ‘ROS-Academy-for-Beginners/topic_demo/CMakeFiles/topic_demo_generate_messages_cpp.dir/all’ failed
make[1]: *** [ROS-Academy-for-Beginners/topic_demo/CMakeFiles>>/topic_demo_generate_messages_cpp.dir/all] Error 2

Makefile:138: recipe for target ‘all’ failed
make: *** [all] Error 2
Invoking “make -j12 -l12” failed

如果系统之前装过 Anaconda,这种错误可能是因为Anaconda 改变了系统的Python环境导致的。Anaconda安装时会将系统的Python环境改成了自己的Python环境,而ROS需要系统的Python但它本身又不是Anaconda内部的,所以emmm。。。

解决方法:
首先打开系统的bashrc文件,用终端在系统根目录下运行:

$ gedit .bashrc

注释掉下面export这句话(第二行的,一般在文件结尾处)
在这里插入图片描述
然后到ROS的workspace下面,删除builddevel 两个文件,因为它们在上一次生成的时候已经依赖了之前的Python环境。
ROS 'catkin_make' 命令出错_第1张图片

最后,重新打开一个终端,一定要重新打开,然后再进行catkin_make,就可以了。

PS :如果发现少了一个Python的什么模块之类的错误(我遇到了ModuleNotFoundError: No module named 'em'),直接在终端用

pip install XXX(模块名字)

安装就可以了。

你可能感兴趣的:(ROS)