No module named 'rosdep2'报错
按照wiki.ros.org上的教程,执行
$ rospack depends1 beginner_tuto
就报错了:
ModuleNotFoundError: No module named 'rosdep2'
ModuleNotFoundError: No module named 'rosdep2'
[rospack] Error: could not find python module 'rosdep2.rospack'. is rosdep up-to-date (at least 0.10.4)?
网上的方案有:
- 换python2.7
也许执行$ catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python2
就可以换
但是Ubuntu 20.04.3用的是python3,我用conda创建了一个python2环境,然后又报cmake的错。算了,不搞这个。 - 执行
$ sudo apt-get install python3-rosdep
ros answers上很多答案用的这种,但我装了还是报一样的错。
github上有人说是anaconda的锅,执行$ conda deactivate
退出环境;如果不想退出环境就执行$ pip install rosdep
在环境中装上rosdep。
(来源:[rospack] Error: could not find python module ‘rosdep2.rospack’. is rosdep up-to-date (at least 0.10.4)? #336)
于是,执行了$ sudo apt-get install python3-rosdep
和$ pip install rosdep
我以为我可以了。再执行$ rospack depends1 beginner_tuto
,又报错:
[rospack] Error: the rosdep view is empty: call 'sudo rosdep init' and 'rosdep update'
啧,行吧,好歹它还告诉你怎么办
执行$ sudo rosdep init
和$ rosdep update
。再试一次$ rospack depends1 beginner_tuto
,它终于可以了:
roscpp
rospy
std_msgs
(补充一句,这种办法在python3.8是有用的,但是3.6就不行)
更新:在anaconda虚拟环境中运行ROS会吃尽苦头,听我一句劝,退出虚拟环境啥事没有