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解析Wireshark的PCAP文件方法

    使用PYTHON解析Wireshark的PCAP文件方法

    今天小编就为大家分享一篇使用PYTHON解析Wireshark的PCAP文件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python matplotlib实时画图案例

    Python matplotlib实时画图案例

    这篇文章主要介绍了Python matplotlib实时画图案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • python使用mysql的两种使用方式

    python使用mysql的两种使用方式

    pymsql是Python中操作MySQL的模块。这篇文章主要介绍了python使用mysql的两种使用方式,需要的朋友可以参考下
    2018-03-03
  • python实现简单socket程序在两台电脑之间传输消息的方法

    python实现简单socket程序在两台电脑之间传输消息的方法

    这篇文章主要介绍了python实现简单socket程序在两台电脑之间传输消息的方法,涉及Python操作socket的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • python从内存地址上加载python对象过程详解

    python从内存地址上加载python对象过程详解

    这篇文章主要介绍了python从内存地址上加载pythn对象过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • Pytorch中关于nn.Conv2d()参数的使用

    Pytorch中关于nn.Conv2d()参数的使用

    这篇文章主要介绍了Pytorch中关于nn.Conv2d()参数的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • python导入pandas具体步骤方法

    python导入pandas具体步骤方法

    在本篇文章中小编给大家分享了关于python导入pandas的相关知识点内容,有兴趣的朋友们参考学习下。
    2019-06-06
  • 使用Python对Excel进行读写操作

    使用Python对Excel进行读写操作

    学习Python的过程中,我们会遇到Excel的读写问题。这时,我们可以使用xlwt模块将数据写入Excel表格中,使用xlrd模块从Excel中读取数据。下面我们介绍如何实现使用Python对Excel进行读写操作。
    2017-03-03
  • python中 chr unichr ord函数的实例详解

    python中 chr unichr ord函数的实例详解

    这篇文章主要介绍了python中 chr unichr ord函数的实例详解的相关资料,需要的朋友可以参考下
    2017-08-08
  • 利用pyuic5将ui文件转换为py文件的方法

    利用pyuic5将ui文件转换为py文件的方法

    今天小编就为大家分享一篇利用pyuic5将ui文件转换为py文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06

最新评论