Ubuntu16.04 安装多个python版本的问题及解决方法

 更新时间:2021年09月01日 11:13:20   作者:FrigidWinter  
Ubuntu16.04自带python2.7与python3.5,Ubuntu 官方 apt 库中还未收录 python 3.8,因此添加 deadsnakes PPA 源安装python3.8,否则会出现报错,接下来通过本文给大家介绍Ubuntu16.04 安装python的问题,一起看看吧

Ubuntu16.04自带python2.7与python3.5,某个项目编译却要求python版本大于等于3.7,遂考虑在原系统基础上再安装python3.8。

1 下载安装python3.8

Ubuntu 官方 apt 库中还未收录 python 3.8,因此添加 deadsnakes PPA 源安装python3.8,否则会出现以下错误

错误1

E: 无法定位软件包 python3.8
E: 无法按照 glob ‘python3.8' 找到任何软件包
E: 无法按照正则表达式 python3.8 找到任何软件包

解决方法:运行以下指令安装python3.8

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.8

此时python3版本还是指向python3.5,可以输入

cd /usr/bin && ll

查看

在这里插入图片描述

2 修改python3默认指向

sudo rm python3
sudo ln -s python3.8 python3

查看python版本验证修改成功:

$ python3 --version
python3.8.9

3 无法打开终端解决方案

按1、2步骤安装完python3后,一般无法打开终端
错误2

$ gnome-terminal
Traceback (most recent call last):
  File "/usr/bin/gnome-terminal", line 9, in <module>
    from gi.repository import GLib, Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: cannot import name '_gi'

解决方法:

cd /usr/lib/python3/dist-packages/gi/
# 下面的35 改成38 表示从py3.5改到py3.8
sudo mv _gi_cairo.cpython-35m-x86_64-linux-gnu.so  _gi_cairo.cpython-38m-x86_64-linux-gnu.so
sudo mv _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-38m-x86_64-linux-gnu.so

接下来修改

sudo gedit /usr/bin/gnome-terminal

将python3改为python

在这里插入图片描述

问题解决。

4 python版本的卸载

sudo apt remove python3.8
sudo apt autoremove python3.8

5 python多版本管理

参考https://www.jb51.net/article/221437.htm,值得注意,仅按该博文的方式配置仍会打不开终端,建议先按照本文方式配置后再添加管理。

将 python 各版本添加到 update-alternatives

$ which python3.8
/usr/bin/python3.8

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

$ which python3.5
/usr/bin/python3.5

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 2

通过下面配置切换版本

$ sudo update-alternatives --config python3


There are 2 choices for the alternative python3 (providing /usr/bin/python3).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.5   2         auto mode
  1            /usr/bin/python3.5   2         manual mode
  2            /usr/bin/python3.8   1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2

6 升级pip3/pip

对于初次安装python的Ubuntu系统而言,pip等级较低,这种情况下进行pip install高版本库可能会出现一系列的问题,例如:

错误3:AttributeError: module ‘platform' has no attribute ‘linux_distribution'
解决方法:对pip版本进行升级

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3 get-pip.py --force-reinstall

到此这篇关于Ubuntu16.04 安装多个python版本的文章就介绍到这了,更多相关Ubuntu16.04 安装python内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Python利用random生成一个列表内的随机数

    详解Python利用random生成一个列表内的随机数

    这篇文章主要介绍了详解Python利用random生成一个列表内的随机数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Django结合使用Scrapy爬取数据入库的方法示例

    Django结合使用Scrapy爬取数据入库的方法示例

    这篇文章主要介绍了Django结合使用Scrapy爬取数据入库的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python+opencv像素的加减和加权操作的实现

    python+opencv像素的加减和加权操作的实现

    这篇文章主要介绍了python+opencv像素的加减和加权操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • TensorFlow 滑动平均的示例代码

    TensorFlow 滑动平均的示例代码

    这篇文章主要介绍了TensorFlow 滑动平均的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Python二次规划和线性规划使用实例

    Python二次规划和线性规划使用实例

    这篇文章主要介绍了Python二次规划和线性规划使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Python获取对象属性的几种方式小结

    Python获取对象属性的几种方式小结

    这篇文章主要介绍了Python获取对象属性的几种方式小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python实现王者荣耀自动刷金币的完整步骤

    Python实现王者荣耀自动刷金币的完整步骤

    这篇文章主要介绍了Python实现王者农药自动刷金币的完整步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • python 提取视频中的音频工具类详解

    python 提取视频中的音频工具类详解

    本文主要介绍了如何利用Python的ffmpy库实现提取视频中的音频,从而帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-11-11
  • Java中MultipartFile与File互转的实现

    Java中MultipartFile与File互转的实现

    本文主要介绍了Java中MultipartFile与File互转的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 利用Python绘制酷炫的3D地图

    利用Python绘制酷炫的3D地图

    pyecharts是一款将python与echarts结合的强大的数据可视化工具。本文将为大家介绍如何利用pyecharts绘制酷炫的3D地图,感兴趣的小伙伴可以试一试
    2022-03-03

最新评论