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


34

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

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 期待どおりにターミナルを開きます。

回答:


34

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

sudo rm /usr/bin/python3
sudo ln -s python3.5 /usr/bin/python3

4
これに追加するには、これはpython3-aptパッケージのバグが原因です。ここで、Launchpadのバグが公開されています
ジョシュ

シンボリックリンクはどのパスに作成する必要がありますか?ターミナルのバグが修正されるまで、pyenvはより良い代替物ではありませんか?
josircg

@josircg:パスの質問が理解できるかどうかわかりません。シンボリックリンクと実行可能ファイルの両方がにあり/usr/binます。より良い選択肢があるかもしれません。何か知っている場合は、独自の答えを書いてください。
グンナルHjalmarsson

1
@GunnarHjalmarssonこれらのコマンドはどこで実行できますか、私の端末は開いていません。
ショーエブシェイク

1
@ShoyebSheikh:XTermをお持ちですか?
グンナールハルマルソン

20

コマンドを実行するだけで、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

これは正確に何をしますか?安全ですか?
-wjandrea

3
これが答えです。それは安全な@wjandreaが、私はUbuntuの18の下にはPython 3.7で何の問題もなく、それを使用している
フアン

これらをxtermに貼り付けられますか?
ターラー

私の作品は、これは、第二@Huan答えであると私すべきである
user1282043

これが何をするのかの説明はまだ役に立つだろう
ダニエル・ホームズ

8

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

sudo update-alternatives --config python3

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


@davidbakは、Ubuntu ircまたはメーリングリスト(またはリポジトリにパッチを提出)でUbuntuについて不平を言う正しい場所です。
ボリス

3

私は、これは古い質問ですが、全体的にはPython 3.5へのpython3を変更する以外の方法をお探しの方のために、あなたが最初の行を変更することができます知っている/usr/bin/gnome-terminalから#! /usr/bin/python3にします#! /usr/bin/python3.5

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


あるgnome-terminal休憩やが、他のことをしている唯一のことgnome-*、私があまりにも変更する必要があること、物事は?
ボリス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.