ImportError: No module named `defusedxml`

隔竹月發表於2020-11-14

觸發

該錯誤在通過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’

相關文章