双系统:ubuntu 1804&win11

ubuntu默认python版本:2.7

ros版本:melodic

楼主是已经早就安装并配置好了ros环境,然后又几天没有用到,中间隔着的几天使用了pytorch训练模型来着,今天偶然运行roscore的时候,发现竟然报错了!!!

error:找不到 ros 命令,请先安装 python-ros、、、、、巴拉巴拉

然后就上网寻找解决办法:网上的办法挺多的,看见最多的一个是source一下,即 source ~/.bashrc,果不其然,又出现了新错误:

Error:

bash: /opt/ros/melodic/_setup_util.py: /usr/bin/python: 解释器错误: 没有那个文件或目录、、、、、、巴拉巴拉

 然后继续探究解决方案,这里为大家排除一个回答最多也是最可笑的的答案:$gedit .bashrc,打开bash文件删掉最后一行中的source  /opt/ros/melodic/setup.bash,这样确实是可以让错误消失,但是并没有解决任何问题!反而这句话是必须要有的!!!!所以如果出现上述错误,可以在这里加上

source  /opt/ros/melodic(这里可以切换为你的ros版本)/setup.bash

如果添加上述行之后错误仍然存在,请继续往下看!

下面也是我的问题原因和解决办法,我是因为安装了python3.6导致了与安装ros时自带python2.7冲突所致,所以先查看一下自己当前的python版本,是否与文件/opt/ros/melodic/_setup_util.py中的首行 #! /usr/bin/python 保持一致,/python或者/python2便对应python2.x版本,/python3便对应python3.x版本,我这里的是用的python3.6,所以我要先将python改回python2.7,输入:

$ python

$ sudo update-alternatives --config python

<输入密码,选择你的版本>

$ python

 结果如图:

 接下来,在建立你系统指向的python版本的软链接:,我这里需要链接到python2.7,所以在终端输入:

$ sudo ln -s /usr/bin/python2 /usr/bin/python

 成功之后,再运行roscore,你就发现成功啦!!!!!

 但是!!如果创建软连接不成功,而是出现如下错误:

Error;    ln: 无法创建符号链接'/usr/bin/python': 文件已存在

则是因为先前创建了其他python版本的软链接,所以冲突了,不要慌,我们只需要把先前创建的软链接删除掉,重新创建就好了:

$ sudo rm /usr/bin/python3 /usr/bin/python
<删除之前的软链接>

$ sudo ln -s /usr/bin/python2 /usr/bin/python
<创建新的软链接>

 大功告成!!放心的运行你的ros命令吧!

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐