安装ROS后初始化时出现The ‘rosdep==0.19.0‘ distribution was not found and is required by the application错误
程序员文章站
2022-01-07 09:51:00
安装好ROS后,当初始化时,出现错误:@Inspiron-7447:~$ sudo rosdep initTraceback (most recent call last): File "/usr/bin/rosdep", line 6, in from pkg_resources import load_entry_point File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init...
安装好ROS后,当初始化时,出现错误:
@Inspiron-7447:~$ sudo rosdep init
Traceback (most recent call last):
File "/usr/bin/rosdep", line 6, in <module>
from pkg_resources import load_entry_point
File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init__.py", line 3254, in <module>
@_call_aside
File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init__.py", line 3238, in _call_aside
f(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init__.py", line 3267, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init__.py", line 584, in _build_master
ws.require(__requires__)
File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init__.py", line 901, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/local/lib/python3.5/dist-packages/pkg_resources/__init__.py", line 787, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'rosdep==0.19.0' distribution was not found and is required by the application
网上查到需要重新安装 Python3.5 版本的 rosdepsudo apt install python3-rosdep
进行修复(坑)
$ sudo apt install python3-rosdep
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
python3-rosdep : 依赖: python3-catkin-pkg 但是它将不会被安装
依赖: python3-rospkg 但是它将不会被安装
依赖: python3-rosdep-modules (>= 0.19.0) 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
如果用这个修复,会卸载掉ROS的很多东西
升级了 0 个软件包,新安装了 1 个软件包,要卸载 205 个软件包,有 74 个软件包未被升级。
因此又继续查其他解决办法:
原因是由于ROS默认是python2,而自己系统python版本换到了python3造成的。我们将系统python版本换到python2就可以了。执行命令
sudo update-alternatives --config python
有 2 个候选项可用于替换 python (提供 /usr/bin/python)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/python3 150 自动模式
1 /usr/bin/python2 100 手动模式
2 /usr/bin/python3 150 手动模式
要维持当前值[*]请按<回车键>,或者键入选择的编号:1
update-alternatives: 使用 /usr/bin/python2 来在手动模式中提供 /usr/bin/python (python)
选择python2的编号回车即可切换。
重新进行初始化等步骤又可以了
@Inspiron-7447:~$ sudo rosdep init
Wrote /etc/ros/rosdep/sources.list.d/20-default.list
Recommended: please run
rosdep update
@Inspiron-7447:~$ rosdep update
本文地址:https://blog.csdn.net/z952957407/article/details/107645997