触发
该错误在通过roscore
启动ros主节点时出现:
ImportError No module named `defusedxml`
又或者在使用rosbag
时出现:
ImportError: No module named 'rospkg'
原因
ROS依赖于python2,linux并且通过路径/usr/bin/python
来指定默认的python版本,一旦该路径没有被设置,或者被设置为python3,就会出现以上错误。
ubuntu16安装了python2和python3,可以通过以下两条命令查看它们的版本:
python2 --version
python3 --version
可以通过以下命令查看路径是否被正确链接:
ls -n /usr/bin/python
如果没有链接,那么显示
ls: cannot access '/usr/bin/python': No such file or directory
如果链接到python3,那么显示:
lrwxrwxrwx 1 0 0 16 11月 13 23:46 /usr/bin/python -> /usr/bin/python3
解决
(1)删除原有链接
sudo rm -rf /usr/bin/python
(2)重定向
sudo ln -s /usr/bin/python2 /usr/bin/python
再次执行
ls -n /usr/bin/python
会看到
lrwxrwxrwx 1 0 0 16 11月 13 23:46 /usr/bin/python -> /usr/bin/python2
参考
[1] 启动ros 出现ImportError No module named defusedxml
[2] ImportError: No module named ‘rospkg’