ROS学习笔记(2)——roslaunch turtle_tf turtle_tf_demo.launch报错问题(Ubuntu20.04python2与python3版本切换)

写在前面

Ubuntu版本:20.04
ROS版本:noetic

解决运行roslaunch turtle_tf turtle_tf_demo.launch文件后报错问题
ROS学习笔记(2)——roslaunch turtle_tf turtle_tf_demo.launch报错问题(Ubuntu20.04python2与python3版本切换)_第1张图片问题说明 : 此问题最终是由于python版本的问题。

问题的产生

可以去看以下问题报错所在的目录下(/opt/ros/noetic/lib/turtle_tf)的文件:
ROS学习笔记(2)——roslaunch turtle_tf turtle_tf_demo.launch报错问题(Ubuntu20.04python2与python3版本切换)_第2张图片
打开报错为文件,第一行就可以看到:#!/usr/bin/env python

而我们自计算机没有指定python是哪个版本(即:python --version 查不到版本号)

即使是安装的python2 python3也是只能查到对应版本(即:python2 --version python3 --version 可以查到),看下图:

ROS学习笔记(2)——roslaunch turtle_tf turtle_tf_demo.launch报错问题(Ubuntu20.04python2与python3版本切换)_第3张图片

$ ls /usr/bin/python* #用来查看已经安装的python版本

请添加图片描述
可以看到我们安装了python3.8 和python2.7

我们需要检查是否配置了任何Python替代方案。
请添加图片描述
可以看到 python没有候选项,在运行的roslaunch turtle_tf turtle_tf_demo.launch时候才会报错,因为我们的python没有指定版本。

解决方法

需要指定python是那个版本

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2

请添加图片描述
这里我们随便指定一个版本给python(python2 python3试了试好像都可以),这时候我们再看一下python有没有指定版本终端输入:

python --version

请添加图片描述

sudo update-alternatives --list python

ROS学习笔记(2)——roslaunch turtle_tf turtle_tf_demo.launch报错问题(Ubuntu20.04python2与python3版本切换)_第4张图片

再运行

roslaunch turtle_tf turtle_tf_demo.launch

ROS学习笔记(2)——roslaunch turtle_tf turtle_tf_demo.launch报错问题(Ubuntu20.04python2与python3版本切换)_第5张图片

详细可参考ubuntu20.04python2与python3版本切换

sudo update-alternatives --config python

ROS学习笔记(2)——roslaunch turtle_tf turtle_tf_demo.launch报错问题(Ubuntu20.04python2与python3版本切换)_第6张图片

你可能感兴趣的:(ROS学习笔记,ubuntu,roboto)