ubuntu18.04安装ROS(melodic)sudo rosdep init出错过程中遇到的问题

ROS:sudo rosdep init出错解决办法记录


ubuntu18.04安装ROS(melodic)sudo rosdep init出错过程中遇到的问题
输入以下代码:sudo gedit /etc/hosts;
得到如图,添加最后一行代码:
151.101.84.133 raw.githubusercontent.com

ubuntu18.04安装ROS(melodic)sudo rosdep init出错过程中遇到的问题

看ERROR是urlopen和ssl验证的问题。
报的错误原因是python 升级到 2.7.9 之后引入了一个新特性,当使用urllib.urlopen打开一个 https 链接时,会验证一次 SSL 证书,而当目标网站使用的是自签名的证书时就会抛出一个 urllib2.URLError的错误消息。

既然前面尝试了很多办法都没法解决SSL验证问题,那只能想办法在执行rosdep update时尝试定位urllib.urlopen()函数并规避掉SSL验证。
找到urlopen()之后,如果参考链接里的解决方案,需要修改所有调用的14个地方,太复杂。如果我们可以在rosdep浅入口处设置urlopen()全局属性,取消SSL验证,那是不是可以一下解决问题?
因此,在/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py中顶部直接插入两行代码取消SSL验证:
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

ubuntu18.04安装ROS(melodic)sudo rosdep init出错过程中遇到的问题
再次rosdep update
ubuntu18.04安装ROS(melodic)sudo rosdep init出错过程中遇到的问题
成功解决。