解决Pycharm运行ROS节点时出现的 No module named beginner_tutorials.msg报错

1.首先要保证按照官网教程正确配置package.xml和CMakelists.txt,参考教程创建ROS消息和服务;

2.在编译后,所有在msg路径下的.msg文件都将转换为ROS所支持语言的源代码。

(1)生成的C++头文件将会放置在~/catkin_ws/devel/include/beginner_tutorials/

(2)Python脚本语言会在 ~/catkin_ws/devel/lib/python2.7/dist-packages/beginner_tutorials/目录下创建。

因此要保证~/catkin_ws/devel/lib/python2.7/dist-packages/beginner_tutorials/msg被添加到$PYTHONPATH:打开Pycharm的->Settings设置中的Project Interpreter,点击->show all,再点击show path for project interpreter,点击加号将~/catkin_ws/devel/lib/python2.7/dist-packages添加到python路径,如下图所示:

3.为了保险起见,删除~/catkin_ws/devel/lib/python2.7/dist-packages下的所有文件,再cd catkin_ws,重新编译生成对应的python包和C++库,这一步主要是防止以前生成的.pyc文件对pycharm调用msg或srv文件对应的.py文件造成干扰;