No Ubuntu 18.04 depois de algum tempo de uso, recebi o seguinte erro ao tentar iniciar o gnome-terminal :
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
Ocorre também um erro semelhante quando tento iniciar gnome-tweaks ou executar o comando add-apt-repository . No entanto, quando tento executar o gnome-terminal do menu "open in terminal" do nautilus, ele foi iniciado normalmente. O mesmo erro ocorre também se eu tentar fazer em python3:
from gi.repository import GLib
Eu serei grato por qualquer conselho.
Aqui está uma saída adicional relacionada aos parâmetros 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']
Finalmente, encontrei a causa do erro. A biblioteca _gi.cpython-36m-x86_64-linux-gnu.so do módulo python3.6 gi depende do libgirepository-1.0.so pacote libgirepository1.0-dev , mas essa dependência não está listada no cabeçalho ELF da biblioteca. Então, a solução alternativa que usei é adicionar
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgirepository-1.0.so
para ~ / .profile . No entanto, ainda não entendo como isso pode acontecer e como resolver o problema da maneira certa. Eu sou um novato em programação C e encontrei a solução depois de ler o excelente artigo sobre a biblioteca de links em link