欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

安装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 版本的 rosdep
sudo 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