修复GNOME终端Python导入错误 | AI生成和翻译
问题诊断
您的 GNOME 终端启动失败,原因是 GObject Introspection (GI) 库中的 Python 导入错误。回溯信息显示问题出现在 from gi.repository import GLib, Gio 这一行,具体是在 /usr/lib/python3/dist-packages/gi/__init__.py 的第 40 行。完整错误(基于常见报告)很可能是:
ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import)
这通常是由于系统 Python 版本与 GI 绑定(python3-gi 包)不匹配造成的,常见于手动升级 Python、使用虚拟环境或软件包损坏后。您在 journalctl 输出中看到的 UFW BLOCK 日志与此问题无关——它们只是防火墙在丢弃无害的多播流量(例如来自 192.168.1.x 网段其他设备的 mDNS/UPnP 发现)。请暂时忽略这些记录。
可尝试的快速修复
既然您已经有一个可用的 shell 提示符(看起来您在 ~/projects 目录中),可以直接运行以下命令。从最简单的开始:
- 重新安装 GI 包和 GNOME 终端(最常见的修复方法):
sudo apt update sudo apt install --reinstall python3-gi gir1.2-glib-2.0 gnome-terminal然后从当前 shell 运行
gnome-terminal进行测试。 - 如果上述方法无效,检查/修复 Python 符号链接(如果您最近调整过 Python 版本):
- 验证系统 Python:
ls -l /usr/bin/python3(应指向类似 python3.10 或 3.12 的版本,具体取决于您的发行版版本)。 - 如果链接损坏,重新安装默认 Python:
sudo apt install --reinstall python3-minimal - 或手动设置符号链接(将
3.10替换为您的发行版默认版本):sudo ln -sf /usr/bin/python3.10 /usr/bin/python3
- 验证系统 Python:
- 完全重置 GNOME(如果上述方法失败——会重置终端首选项但不会删除数据):
dconf reset -f /org/gnome/terminal/ gnome-terminal --reset-config - 终极方案:彻底卸载并重新安装 GNOME 终端:
sudo apt purge gnome-terminal sudo apt install gnome-terminal
完成任何修复后,请注销/登录或重启系统,以确保桌面环境能够正确识别更改。如果您使用的是基于 Ubuntu/Debian 的系统(根据路径判断),这些命令应该有效。如果是其他发行版(例如 Fedora),请将 apt 替换为 dnf。
如果以上方法均未解决问题,请在当前 shell 中运行 python3 -c "from gi.repository import GLib; print('OK')" 并分享输出结果以便进一步分析。
参考资料
- 尝试安装新版 Python 后 GNOME 终端无法启动
- 为什么终端无法打开?
- ImportError: cannot import name ‘_gi’ from partially initialized module
- Zorin 17 Core 上某些应用程序无法运行