gnome-terminal 和一些其他命令无法在 Ubuntu 18.04 中启动

gnome-terminal 和一些其他命令无法在 Ubuntu 18.04 中启动

在 Ubuntu 18.04 中使用一段时间后,我在启动时收到以下错误gnome 终端

Traceback (most recent call last):
File "/usr/bin/gnome-terminal", line 9, in <module>
from gi.repository import GLib, Gio
File "/home/victor/.local/lib/python3.6/site-packages/gi/__init__.py", line 42, in <module>
from . import _gi
ImportError: /home/victor/.local/lib/python3.6/site-packages/gi/_gi.cpython-36m-x86_64-linux-gnu.so: undefined symbol: g_interface_info_find_method

当我尝试启动时也会出现类似的错误gnome 调整或者执行命令添加 apt 存储库。但是,当我尝试从 nautilus 的“在终端中打开”菜单运行 gnome-terminal 时,它启动正常。如果我尝试在 python3 中执行此操作,也会出现同样的错误:

from gi.repository import GLib

我将非常感激您的任何建议。

以下是与 python3 参数相关的附加输出:

$ type python3; readlink /usr/bin/python3
python3 is /usr/bin/python3
python3.6
$ echo "$PYTHONPATH"; python3 -c 'import sys; print(sys.path)'

['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/victor/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']

最后,我找到了错误的原因。库_gi.cpython-36m-x86_64-linux-gnu.sopython3.6模块依赖于取决于libgirepository-1.0.solibgirepository1.0-dev包,但该依赖项未在库的 ELF 标头中列出。因此,我使用的解决方法是添加

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgirepository-1.0.so

〜/ .profile。但是,我仍然不明白,这种情况怎么会发生,以及如何以正确的方式解决问题。我是 C 编程新手,在阅读了有关库链接的优秀论文后找到了解决方案http://www.kaizou.org/2015/01/linux-libraries/

相关内容