apt update报错:ModuleNotFoundError: No module named ‘apt_pkg‘(可能是默认python版本被改坏了)

文章目录

  • 错误信息
  • 分析
  • 1. 确保 `apt_pkg` 模块已安装
  • 2. 检查 Python 版本
  • 3. 重新配置 Python
  • 4. 修复损坏的依赖
  • 5. 检查环境变量
  • 尝试
  • 错误信息

    (base) root@kyai:/ky/tml/ky_ai_get_server_info# apt update
    获取:1 file:/var/cuda-repo-cross-aarch64-ubuntu2004-11-4-local  InRelease [1,575 B]
    获取:2 file:/var/cuda-repo-ubuntu2004-11-4-local  InRelease [1,575 B]
    获取:1 file:/var/cuda-repo-cross-aarch64-ubuntu2004-11-4-local  InRelease [1,575 B]
    获取:2 file:/var/cuda-repo-ubuntu2004-11-4-local  InRelease [1,575 B]
    命中:3 https://mirrors.aliyun.com/ubuntu focal InRelease
    命中:4 https://mirrors.aliyun.com/ubuntu focal-security InRelease
    命中:5 https://mirrors.aliyun.com/ubuntu focal-updates InRelease
    命中:6 https://mirrors.aliyun.com/ubuntu focal-backports InRelease
    命中:8 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal InRelease
    获取:9 https://nvidia.github.io/libnvidia-container/stable/ubuntu18.04/amd64  InRelease [1,484 B]
    命中:7 https://packagecloud.io/github/git-lfs/ubuntu focal InRelease
    获取:10 https://nvidia.github.io/nvidia-container-runtime/stable/ubuntu18.04/amd64  InRelease [1,481 B]
    获取:11 https://nvidia.github.io/nvidia-docker/ubuntu18.04/amd64  InRelease [1,474 B]
    已下载 4,439 B,耗时 2秒 (2,024 B/s)
    Traceback (most recent call last):
      File "/usr/lib/cnf-update-db", line 8, in <module>
        from CommandNotFound.db.creator import DbCreator
      File "/usr/lib/python3/dist-packages/CommandNotFound/db/creator.py", line 11, in <module>
        import apt_pkg
    ModuleNotFoundError: No module named 'apt_pkg'
    正在读取软件包列表... 完成
    E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi'
    E: Sub-process returned an error code
    (base) root@kyai:/ky/tml/ky_ai_get_server_info#
    
    

    分析

    您遇到的错误信息表明,当尝试运行 apt update 命令时,Ubuntu 的 command-not-found 包中的脚本遇到问题。具体来说,是因为 Python 脚本无法找到名为 apt_pkg 的模块。这通常是因为 Python 环境配置问题或者必要的库文件没有正确安装。

    解决这个问题通常有几个方法:

    1. 确保 apt_pkg 模块已安装

    这个模块通常随 Python 的 apt 包一起安装。您可以尝试重新安装或修复此包:

    sudo apt install --reinstall python3-apt
    

    2. 检查 Python 版本

    由于系统可能有多个 Python 版本,确保 /usr/bin/python3 链接到的是系统的 Python 版本。您可以检查并修复链接:

    ls -l /usr/bin/python3
    sudo ln -sf /usr/bin/python3.x /usr/bin/python3  # 替换 x 为正确的子版本号
    

    3. 重新配置 Python

    如果之前修改过默认的 Python 链接,可能需要重设或更新 update-alternatives 配置:

    sudo update-alternatives --config python3
    

    选择正确的 Python 版本,通常是系统默认的 Python 3.x 版本。

    4. 修复损坏的依赖

    有时候,依赖可能会损坏。运行以下命令尝试修复:

    sudo apt --fix-broken install
    

    5. 检查环境变量

    如果您在使用 Conda 或其他虚拟环境,可能会影响系统脚本运行。尝试禁用虚拟环境或更改环境配置,以确保系统脚本可以找到正确的库。

    完成这些步骤后,再次运行 apt update 查看问题是否得到解决。如果问题依然存在,可能需要检查更详细的系统日志或进一步探索其他潜在的配置问题。

    尝试

    尝试重装python3-apt貌似没有用:

    查看默认python版本,貌似被他们改掉了,可能用于训练,算了,我就不改他们的了。

    作者:Dontla

    物联沃分享整理
    物联沃-IOTWORD物联网 » apt update报错:ModuleNotFoundError: No module named ‘apt_pkg‘(可能是默认python版本被改坏了)

    发表回复