web-dev-qa-db-ja.com

Gnomeターミナルが起動しない

Ubuntu 16.04システムにpython 3.6をインストールしようとしましたが、ランチャーまたはCtrl + Alt + Tからターミナルを実行できません。 XTermからgnome-terminalを実行しようとすると、次のメッセージが表示されました。

Traceback (most recent call last):
  File "/usr/bin/gnome-terminal", line 9, in <module>
    from gi.repository import GLib, Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: cannot import name '_gi'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "/usr/bin/gnome-terminal", line 9, in <module>
    from gi.repository import GLib, Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: cannot import name '_gi'

このエラーを修正するにはどうすればよいですか?

次の点にも注意する必要があります。

  • gnome-terminalファイルはpythonスクリプトになりました。
  • gnome-terminal.realファイルは、期待どおりにターミナルを開きます。
  • python3.5 gnome-terminalは期待どおりにターミナルを開きます。
26
bengdahl

おそらくシンボリックリンク/usr/bin/python3はpython3.6を指しますが、そうすべきではありません。次のコマンドを実行して修正します。

Sudo rm /usr/bin/python3
Sudo ln -s python3.5 /usr/bin/python3
31

コマンドを実行するだけで、Python3をpython3.5に指定する必要はありません。

cd /usr/lib/python3/dist-packages/gi/
Sudo cp _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-36m-x86_64-linux-gnu.so
Sudo cp _gi_cairo.cpython-35m-x86_64-linux-gnu.so _gi_cairo.cpython-36m-x86_64-linux-gnu.so
14
Inno Jia

デフォルトのpython3の適切な変更は、次の方法で行います。

Sudo update-alternatives --config python3

_gi_cairo.cpython-35m-x86_64-linux-gnu.soをpython3.5からpython3.6にコピーすると問題は解決しますが、ライブラリの一貫性が損なわれます。そして避けるべきです。

3
Saeed

これは古い質問ですが、python3をpython 3.5にグローバルに変更する以外の方法を探している場合は、/usr/bin/gnome-terminalの最初の行を#! /usr/bin/python3から#! /usr/bin/python3.5に変更できます。

注:コンピューターにpython 3.5はありませんが、import giはpython 3.6で動作するため、3.5ではなく3.6を使用しました。

1
FelisPhasma