• ubuntu升级python后ModuleNotFoundError: No module named 'apt_pkg'异常


    ubuntu 18.04默认的python3的版本为3.6,各种原因需要升级python版本
    lozz

    升级python版本
    • 升级python

    首先更新软件包列表并安装必备组件

    sudo apt update
    sudo apt install software-properties-common
    

    添加PPA

    sudo add-apt-repository ppa:deadsnakes/ppa
    

    安装Python 3.8(以3.8版本为例)

    sudo apt install python3.8
    
    • 配置 python3.8 为系统默认 python3

    将 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.6
    /usr/bin/python3.6
    sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
    

    配置 python3 默认指向 python3.8

    ⇒  sudo update-alternatives --config python3
    有 2 个候选项可用于替换 python3 (提供 /usr/bin/python3)。
    
      选择       路径              优先级  状态
    ------------------------------------------------------------
      0            /usr/bin/python3.6   2         自动模式
      1            /usr/bin/python3.6   2         手动模式
    * 2            /usr/bin/python3.8   1         手动模式
    
    要维持当前值[*]请按<回车键>,或者键入选择的编号:
    

    输入 2(python3.8前的序号), 回车.完成设置

    升级python版本后的异常
    • 升级完python版本后,会出现异常
    ModuleNotFoundError: No module named 'apt_pkg'
    
    解决方法
    cd /usr/lib/python3/dist-packages/
    
    • 复制
    sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so  apt_pkg.cpython-38m-x86_64-linux-gnu.so
    
    sudo ln -s apt_pkg.cpython-38m-x86_64-linux-gnu.so apt_pkg.so
    

    如果报错,则执行下方命令,强制添加

    sudo ln -fs apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so
    
  • 相关阅读:
    rsync的man手册(未完成)
    rsync基础
    命令:mktemp
    命令:install
    [Abp vNext 源码分析]
    异常吞噬问题一则
    使用 Polly 实现复杂策略(超时重试)
    在 DotNetty 中实现同步请求
    使用 C# 实现 CJ-T188 水表协议和 DL-T645 电表协议的解析与编码
    DevExpress 使用 GridControl 时,数据源无法立即更新的问题
  • 原文地址:https://www.cnblogs.com/lozz/p/14261608.html
Copyright © 2020-2023  润新知