注:因为原本是用为知笔记写的,这里复制可能效果不太好,这里给出笔记外链:https://e6757600.wiz03.com/wapp/pages/view/share/s/3Ctno00M217F2eFikT2eDvz72TTWd01hX17G293Dem2UoX_E
(已解决,过程均为弯路,方法见文末)运行命令及回馈错误如下图所示:
背景:由于kinetic的python环境很混乱,决定重装,在rosdep init时候提示需要执行rosdep update,执行之后得到这般。
思路:python库搜索搜索出错,前两个库的import的路径是python2.7,但是到了yaml就变成了python3.5。
解决办法:
思路1:在python也安装pyyaml库,执行结果:
果不其然,路径路径还是搜索到了python3.5,接下来指定安装路径:
下载过程还是很正常,但是接下来就出现了错误:
分别对倒数三行额错误进行了百度,得到的结果并不如人意(①进行修改.pyx文件,这里吸取上一个ros的错误,不能对系统默认安装的文件进行修改,最坏结果不仅这个安装不上,原本能够正常运行的环境也由此破坏;②答案很少,唯一的还是用虚拟机有几个包冲突,具体解决方法是另创了一个文件夹(???);③报错并不相同,答主是由于pip版本问题;)
另外,在python2.7/dist-packages下发现pyyaml:
但是这个python2.7恐怕是刚刚错误生成的文件,在重新梳理过程之后,我发现了另外一种安装pyyaml的方法(来源于2017的老铁):
按照第3种wget的方法,我把pyyaml-3.11安装到了python2.7/dist-packages目录:
但是他接下来的语句却不是安装这个压缩包,简单尝试后,crtl+c溜了,换了别的安装方法:
本来看最后几行,感觉像是安装成功了:
但是刚刚翻来覆去截屏的时候发现:
是我们最爱的fatal error呢!说实话,心态有点崩,果不其然,执行rosdep update还是失败:
诸多搜索之后,我选择换一个思路;
思路2:将python搜索库的优先顺序进行更换:
https://www.cnblogs.com/fengyunlsm/p/6024085.html
参考上述链接有好几种方法:
方法一是用于自己编写的python文件中进行修改(之前在YOLOv3的使用上用过),显然不适合;
方法二由于现在python2.7已经停止维护,况且系统下面还有这么多使用python3.5的项目,暂且放弃(进行了方法三之后的尝试回来跳坑)
对.bashrc的PYTHONPATH进行修改如下:
但是:
方法三:添加pth文件:
无果。
思路三:进行新环境的创建:
首先是打算利用anaconda来创建名为py2的虚拟环境,如下:
定眼一看,错误报的:
整整6个这玩意儿,我人傻了。。这时候注意到目录并不在系统~目录,切回去,执行:
通过命令:
发现并没有yaml包,安装:
但是安装后rosdep 、依旧失败,还是原来的报错,还是原来的味道,之后用locate 文件名的方式找到了yaml的文件位置,发现和思路二里面的目录名字相差一个目录,然后把这个目录放入.bashrc文件中,执行rosdep,不再报错。。总算成功。
总结:
一系列的弯路走下来,发现就是最简单的地方没有配置成功,还是学识太浅,解决方法:用locate 文件名找到库目录,然后将库目录放入.bashrc如下: