这几天运气十分不顺,跑个gazebo报错,为了修gazebo,最后发现我连之前可以catkin_make的文件,都开始报错:
ImportError: "from catkin_pkg.topological_order import topological_order" failed: No module named 'catkin_pkg'
Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH.
看了无数网上的解决方法,虽然没有解决我的问题,但还是整理下来:
1.先查看是否有catkin_pkg包,下面的第一条命令我显示找不到,所以我用了第二条,也就是有python3的那条命令可以执行,显示了一堆文件。具体查找的命令自己可以多试试
(1)
sudo dpkg -L python-catkin-pkg
sudo dpkg -L python3-catkin-pkg
2.下载
这是下面解决方法的网址
删除干净
sudo rm -rf /usr/local/lib/python2.7/dist-packages/catkin*
下载可以用:
(1)
sudo apt-get install python-catkin-pkg
我使用上面这条的时候下载不成功(我是ubuntu20.04,ros里是python3):
(2)所以我用了:
sudo apt-get install python3-catkin-pkg
pip install catkin_pkg
我的显示:
(4)或者重新下载
sudo apt-get install --reinstall python3-catkin-pkg
sudo apt-get install --reinstall python3-catkin-pkg
3.看到了另一个解决方法,下载python3-catkin-tools
原文链接在这
首先链接地址:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
然后下载:(原文链接里有很多的下载方法,我这里只放了一种我能用的)
sudo apt-get update
sudo apt-get install python3-catkin-tools
这个博主用了这个方法,解决了他的问题,只不过他用的是
sudo apt-get update
sudo apt-get install python-catkin-tools
4.也有人说,python3和catkin_make兼容性不好,原文连接
“ 如果是你错误使用了Python3版本,那么就将编译命令由catkin_make改为
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python2
但我没法用,我使用这条命令的时候都在报错找不到catkin_pkg。。。。。
5.如果是路径问题,这篇文章写的比较实用
(1)首先在工作环境ws下定位 catkin_pkg
locate catkin_pkg
echo $PYTHONPATH
输出:
(3)将catkin_pkg dir附加到PYTHONPATH:
export PYTHONPATH=$PYTHONPATH:/usr/lib/python3/dist-packages
(4)为了永久性,将catkin_pkg dir附加到我的.bashrc中的PYTHONPATH中
export PYTHONPATH=$PYTHONPATH:/usr/lib/python3/dist-packages
source ~/.bashrc
再次检查你的PYTHONPATH:
echo $PYTHONPATH
输出如下,说明usr/lib下的dist-packages已经添加进来了
这时候再去catkin_make一下,应该修好了吧,可惜我的没修好,准备重装ROS了。。。