写在前面
Ubuntu版本:20.04
ROS版本:noetic
解决运行roslaunch turtle_tf turtle_tf_demo.launch文件后报错问题
问题说明 : 此问题最终是由于python版本的问题。
问题的产生
可以去看以下问题报错所在的目录下(/opt/ros/noetic/lib/turtle_tf)的文件:
打开报错为文件,第一行就可以看到:#!/usr/bin/env python
而我们自计算机没有指定python是哪个版本(即:python --version 查不到版本号)
即使是安装的python2 python3也是只能查到对应版本(即:python2 --version python3 --version 可以查到),看下图:
$ 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
再运行
roslaunch turtle_tf turtle_tf_demo.launch
详细可参考ubuntu20.04python2与python3版本切换
sudo update-alternatives --config python