当前位置 博文首页 > Ubuntu16.04 安装多个python版本的问题及解决方法

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

    作者:FrigidWinter 时间:2021-09-14 18:29

    目录
    • 1 下载安装python3.8
    • 2 修改python3默认指向
    • 3 无法打开终端解决方案
    • 4 python版本的卸载
    • 5 python多版本管理
    • 6 升级pip3/pip

    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多版本管理

    参考http://blog.iis7.com/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
    jsjbwy
    下一篇:没有了