ubuntu 16.04默认python3是3.5版本,升级至3.6:

ubuntu升级python版本(3.5->3.6)_申小远的博客-CSDN博客

#获取最新的python3.6,将其添加至当前apt库中,并自动导入公钥

$ sudo add-apt-repository ppa:jonathonf/python-3.6

$ sudo apt-get update

$ sudo apt-get install python3.6

# 移除原3.4link 

$ sudo rm /usr/bin/python3

# 更换默认python3 的版本为3.6

$ sudo ln -s /usr/bin/python3.6 /usr/bin/python3

$ wget https://bootstrap.pypa.io/get-pip.py  --no-check-certificate

$ sudo python get-pip.py

这样做会导致系统的terminal无法打开,本质上是因为16.04的terminal默认需要py3.5的一部分内容,需要操作:

Ubuntu16.04TLS 中终端(Terminal)无法打开的解决办法_Threeyearsago的博客-CSDN博客_ubuntu终端启动不了

进入命令行模式:

按Ctrl+Alt+F1

进入文件夹:

cd /usr/lib/python3/dist-packages/gi/

给关键文件改名字:

$ sudo cp _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-36m-x86_64-linux-gnu.so 

$ sudo cp _gi_cairo.cpython-35m-x86_64-linux-gnu.so _gi_cairo.cpython-36m-x86_64-linux-gnu.so

跳回图形界面:

按Ctrl+Alt+F7

然而升级到python 3.6以后,所有py软件包都需要重新安装。

另外出现问题:

由于ubuntu 16.04自带的ros是kinetic,而kinetic关联的python是2.7,因此用上一封邮件中的方法升级python后,再使用ros相关功能会产生问题:

Traceback (most recent call last):

  File "/usr/local/bin/rosversion", line 6, in <module>

    from rospkg.rosversion import main

ModuleNotFoundError: No module named 'rospkg'

Invalid <param> tag: Cannot load command parameter [rosversion]: command [rosversion roslaunch] returned with code [1]. 

Param xml is <param command="rosversion roslaunch" name="rosversion"/>

The traceback for the exception was written to the log file

解决:

重装:

sudo pip install rospkg

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐