修复损坏的Python GI绑定 | AI生成和翻译

Home 2025.10

更新后的诊断

根据最新信息,您安装的 Python 3.13.7(可能是手动安装或通过 PPA/源码安装)破坏了系统的 GObject Introspection (GI) 绑定。gi 模块的 _gi C 扩展是针对系统默认 Python(很可能是 3.10 或 3.11,根据 /usr/lib/python 中的目录判断)编译的,而不是 3.13。当 gnome-terminal(一个 Python 脚本)尝试加载时,就会引发循环导入错误。/usr/lib/python 中的多版本设置证实了这种不匹配——像 python3-gi 这样的系统软件包尚未针对 3.13 构建(截至 2025 年,对大多数发行版来说这个版本太新了)。

UFW 日志仍然是无关的干扰信息。

推荐修复方案:恢复系统默认 Python

最干净的解决方案是将 /usr/bin/python3 切换回发行版默认版本(例如 3.10),然后重新安装 GI 绑定。这可以避免复制 .so 文件等可能引发不一致性的临时方案。

  1. 识别并切换到默认 Python 版本(如果配置了 update-alternatives 则使用该工具,否则手动创建符号链接):
    # 检查是否配置了 alternatives
    sudo update-alternatives --config python3
    
    • 如果列出选项,请选择优先级最低的选项(通常是发行版默认版本,如 3.10)。
    • 如果没有配置 alternatives(原生 Ubuntu 常见情况),手动恢复:
      # 假设默认版本为 3.10(Ubuntu 22.04 常见情况;如果基础版本是 3.11 请相应调整)
      sudo rm /usr/bin/python3
      sudo ln -s /usr/bin/python3.10 /usr/bin/python3
      
    • 验证:python3 --version 现在应显示 3.10.x(或您的默认版本)。
  2. 重新安装 GI 和 GNOME Terminal 软件包
    sudo apt update
    sudo apt install --reinstall python3-gi gir1.2-glib-2.0 gnome-terminal
    
  3. 测试
    python3 -c "from gi.repository import GLib, Gio; print('GI OK')"
    gnome-terminal
    
    • 如果 Python 测试通过但终端仍无法启动,重置其配置:dconf reset -f /org/gnome/terminal/

如需保留 Python 3.13

预防措施

如果问题仍未解决,请运行 ls -l /usr/bin/python*dpkg -l | grep python3 | grep -E 'gi|default' 并分享输出结果。

尝试安装新版 Python 3 后 gnome-terminal 无法启动
ImportError: cannot import name ‘_gi’ from partially initialized module ‘gi’
为什么终端无法打开?


Back

x-ai/grok-4-fast:free

Donate