web-dev-qa-db-ja.com

ImportError:PPAリポジトリを追加しようとしている間、名前 '_gi'をインポートできません

Ubuntu(18.04 LTS)にMPVをインストールしようとしています。システムにPPAリポジトリを追加しようとするたびに、このエラーが発生します。

たとえば、私はこれを試しました:

Sudo add-apt-repository ppa:mc3man/mpv-tests

そしてこれを得た:

Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 11, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 67, in <module>
    from gi.repository import Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import) (/usr/lib/python3/dist-packages/gi/__init__.py)

システムにPPAを追加しようとするたびに発生します。私はPython 3.6をデフォルトでインストールしましたが、後でPython 3.8.0に更新しました。Linuxは初めてです。この問題の原因は何ですか?および方法これを解決しますか?

ありがとうございました!

3

お使いのシステムでは、正しいPythonバージョンの選択に問題があるようです。

ファイル/usr/bin/add-apt-repositoryを編集して、#!/usr/bin/python3の行を特定のバージョンのpythonに変更してみてください。

#!/usr/bin/python3.8

または、代わりに使用できる古いバージョンのpythonがインストールされているかどうかを確認します。

ls -al /usr/bin | grep python

python3.5python3.6などの他のバージョンを探し、#!/usr/bin/python3.8を適切なバージョン番号に置き換えてみてください。

3
Smurfz87

私は同じ問題を抱えていましたが、python 3.7にアップグレードしました。このリンクからメソッドを見つけました: anaconda python3.6のgiをインストールする方法 そしてそれは私のために機能します。あなたの状況では、3.7を3.8に、37を38に変更してみてください:

ln -s /usr/lib/python3/dist-packages/gi/ /home/$USER/anaconda3/lib/python3.7/site-packages/
cd /home/$USER/anaconda3/lib/python3.7/site-packages/gi/
Sudo cp _gi.cpython-36m-x86_64-linux-gnu.so _gi.cpython-37m-x86_64-linux-gnu.so
Sudo cp _gi_cairo.cpython-36m-x86_64-linux-gnu.so _gi_cairo.cpython-37m-x86_64-linux-gnu.so
0
Alexey Khotulev