sudo rosdep init && rosdep update报错解决方法,亲测有效,不用手机热点解决

sudo rosdep init && rosdep update

报错:

lufeng@lufeng:~$ sudo rosdep init && rosdep update
Traceback (most recent call last):
  File "/usr/bin/rosdep", line 11, in <module>
    load_entry_point('rosdep==0.19.0', 'console_scripts', 'rosdep')()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 542, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2569, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2229, in load
    return self.resolve()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2235, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python2.7/dist-packages/rosdep2/__init__.py", line 45, in <module>
    from .lookup import RosdepDefinition, RosdepView, RosdepLookup, \
  File "/usr/lib/python2.7/dist-packages/rosdep2/lookup.py", line 44, in <module>
    from .sources_list import SourcesListLoader
  File "/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py", line 32
    from __future__ import print_function
SyntaxError: from __future__ imports must occur at the beginning of the file

解决:

gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

from __future__ import print_function

移到代码第一行即可解决问题

再次执行

sudo rosdep init && rosdep update

又报错:

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

解决:

sudo gedit /etc/hosts

在文件末尾假如这一行
151.101.84.133 raw.githubusercontent.com
在这里插入图片描述

解决问题!!!!

### 解决 Ubuntu 上安装 ROS 时 `rosdep init` 和 `rosdep update` 报错方法 当遇到 `rosdep init` 或者 `rosdep update` 命令报错的情况,通常是因为网络连接问题或者是默认的软件源不可达。为了有效解决问题,推荐采用清华大学开源镜像站作为替代方案。 #### 使用清华源配置 ROS 资源列表 对于中国用户来说,由于国际网络访问速度较慢或不稳定,可以考虑更换国内镜像站点来加速资源获取过程并减少错误发生的可能性。具体操作如下: 1. **备份原有 rosdep 配置** 在更改任何设置之前先做好数据保护措施是非常重要的。运行下面这条命令将会把当前所有的 rosdep 数据库保存下来: ```bash sudo mv /etc/ros/rosdep/sources.list.d/50-default.list /etc/ros/rosdep/sources.list.d/50-default.list.bak ``` 2. **创建新的 rosdep 源文件** 接着新建一个名为 `50-shadow-fixed.list` 的文件用于指定清华源地址: ```bash echo "yaml https://mirrors.tuna.tsinghua.edu.cn/ros/yaml/rosdep/base.yaml" | sudo tee /etc/ros/rosdep/sources.list.d/50-shadow-fixed.list ``` 3. **初始化 rosdep 并更新索引** 完成上述步骤之后再次尝试初始化以及刷新依赖关系数据库: ```bash sudo rosdep init rosdep update ``` 如果仍然存在无法解析域名或者其他类型的网络异常,则可能需要进一步排查本地网络环境或者防火墙策略等问题[^1]。 另外一种常见的处理方式是直接编辑 Python 文件中的 URL 地址以绕过某些特定网站被屏蔽所带来的影响。例如,在 `/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py` 中第 310 行附近加入代理前缀 `https://ghproxy.com/` 来替换原始链接的一部分内容[^4]。 需要注意的是,不同版本的操作系统和 ROS 发行版可能会有不同的路径名,请根据实际情况调整命令参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值