该错误在通过roscore启动ros主节点时出现:
ImportError No module named `defusedxml
由于ROS依赖于python2,linux并且通过路径
/usr/bin/python来指定默认的python版本,我在安装其他安装包时,将默认的python设置为python3,之后在运行ros节点出现了上面的错误。
ubuntu16.04同时安装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 xx xx月 xx xx:xx /usr/bin/python -> /usr/bin/python3
解决方法
(1)删除原有链接
sudo rm -rf /usr/bin/python
sudo rm -rf /usr/bin/python3
(2)重定向至python2
sudo ln -s /usr/bin/python2 /usr/bin/python
验证更改是否生效
ls -n /usr/bin/python
出现类似如下的结果即可恢复正常:
lrwxrwxrwx 1 0 0 16 2月 28 19:05 /usr/bin/python -> /usr/bin/python2
参考
[1]https://blog.csdn.net/sylin211/article/details/109684710?ops_request_misc=&request_id=&biz_id=102&utm_term=ImportError:%20No%20module%20named%20%27&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-109684710.nonecase&spm=1018.2226.3001.4187