一、问题描述
在编译google的cartographer-ros包时,出现了一个PythonInterp导致的错误,具体如下图
- 可以看出pythoninterp的版本是通过
/usr/bin/python
确定的,而此时ubuntu默认的python版本为python2,在本机为2.7.18,导致不满足cmake对pythoninterp最低版本为3的要求,下面查看python版本并更换默认python版本。
二、查看python版本
- 在终端通过
python --version
查看默认python版本
python --version #查看系统默认python版本
python2 --version #查看python2具体版本
python3 --version #查看python3具体版本
- 可以看出此时系统默认的python版本为
三、修改系统默认python版本
- 可以通过update-alternatives管理linux系统中软件版本的切换
update-alternatives --list python #查看可替换的python版本
- 如果出现
update-alternatives: error: no alternatives for python
的错误提示,说明python的可替换版本还未加入update-alternatives的列表中,此时将步骤二查看到的python版本添加进去
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
- 此时再执行
update-alternatives --list python
就可以看到python的可替换版本
- 在终端中执行如下命令以切换pyhton版本
sudo update-alternatives --config python
-
可以看到此时系统默认的python版本已经被自动设置为3.8,如果要切换回2.7的版本只需要在此窗口输入2.7对应的编号即可设置
-
回车保持当前设置,再查看默认python版本
- 此时python版本已经设置为3.8,符合cartographer-ros的编译要求,再次编译可以正常通过