自己的测试环境是:ubuntu16.04 下安装了Anaconda3。
当前实验是在 base 环境下运行ROS,运行 rosrun rqt_tf_tree rqt_tf_tree
和 rosrun rqt_graph rqt_graph
时出现报错 ModuleNotFoundError: No module named 'rospkg'
,在此记录一下解决方法~~
自己在ubuntu16.04 下安装了Anaconda3后,在 base 环境下运行ROS,当自己运行 rosrun rqt_tf_tree rqt_tf_tree
和 rosrun rqt_graph rqt_graph
时出现如下报错
Traceback (most recent call last):
File "/opt/ros/kinetic/lib/rqt_tf_tree/rqt_tf_tree", line 5, in <module>
from rqt_gui.main import Main
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rqt_gui/main.py", line 38, in <module>
import rospy
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/__init__.py", line 49, in <module>
from .client import spin, myargv, init_node, \
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/client.py", line 52, in <module>
import roslib
File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslib/__init__.py", line 50, in <module>
from roslib.launcher import load_manifest
File "/opt/ros/kinetic/lib/python2.7/dist-packages/roslib/launcher.py", line 42, in <module>
import rospkg
ModuleNotFoundError: No module named 'rospkg'
主要原因就是当前的base 环境(或者 自己的虚拟环境)下 缺少 rospkg
包。
cd 自己的anaconda的目录/anaconda3/lib/python3.7/site-packages
find rospkg
如果没有安装 rospkg
包,会出现 find: ‘rospkg’: No such file or directory
这里自己的 Anaconda 虚拟环境 是 tf1_8.
cd 自己的anaconda的目录/anaconda3/envs/自己的虚拟环境名/lib/python3.*/site-packages
find rospkg
如果没有安装 rospkg
包,会出现 find: ‘rospkg’: No such file or directory
如果已经安装成功啦,会出现如下信息:
直接打开终端,终端默认进入 base 环境。
按照报错提示 ModuleNotFoundError: No module named 'rospkg'
,应该是 base 环境下缺少 rospkg
包,所以需要安装 rospkg
包。
pip install rospkg
安装完成之后,再次运行 rosrun rqt_tf_tree rqt_tf_tree
,如果还未运行成功,并且报错 ModuleNotFoundError: No module named 'pydot'
,那么可以如法炮制,需要安装 pydot
包。
pip install pydot
安装完成之后,再次运行 rosrun rqt_tf_tree rqt_tf_tree
,就可以运行成功啦~~~
直接打开终端,终端默认进入 base 环境,然后激活虚拟环境。
conda activate 自己的虚拟环境名
conda install pip # 确保conda环境下也安装pip,这里是让conda用虚拟环境里的 pip 确保 rospkg 装在该环境
pip install rospkg
安装完成之后,再次运行 rosrun rqt_tf_tree rqt_tf_tree
,如果还未运行成功,并且报错 ModuleNotFoundError: No module named '****'
,那么可以如法炮制,需要安装 ****
包,然后再次运行 rosrun rqt_tf_tree rqt_tf_tree
就可以运行成功啦~~~
参考链接:
[1] ImportError: No module named rospkg – https://answers.ros.org/question/39657/importerror-no-module-named-rospkg/
[2] 运行ROS教程‘rosrun rqt_graph rqt_graph‘ 时报错ModuleNotFoundError: No module named ‘rospkg‘ — https://www.freesion.com/article/7153962566/