无法导入名称“ _gi”

时间:2019-12-18 10:19:12

标签: python ubuntu pi

我正在尝试使用add-apt-repository命令将存储库添加到ppa,但是找不到来自Python的_gi模块。

我执行了以下命令:sudo add-apt-repository ppa:s-mankowski/ppa-kf5

这是回溯:

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 'gi' (/usr/lib/python3/dist-packages/gi/__init__.py)

我在使用Python3.7的Ubuntu上,我尝试了很多解决方案,例如,但它不起作用:

$ cd /usr/lib/python3/dist-packages
$ sudo ln -s apt_pkg.cpython-{36m,37m}-x86_64-linux-gnu.so

$ cd /usr/lib/python3/dist-packages/gi
$ sudo ln -s _gi.cpython-{36m,37m}-x86_64-linux-gnu.so

我不能使用sudo add-apt-repository ppa:s-mankowski/ppa-kf5命令,但是可以使用python3 {file}运行Python文件。

感谢您的帮助!

5 个答案:

答案 0 :(得分:11)

感谢a comment by Wilhelm,我发现解决方法是:

sudo ln -s /usr/lib/python3/dist-packages/gi/_gi.cpython-{36m,37m}-x86_64-linux-gnu.so

这对我在Ubuntu上的Python 3.7有用。

答案 1 :(得分:2)

Ubuntu不喜欢将其默认解释器从python 3.7切换掉。

因此使用

将其切换回3.6
sudo update-alternatives --config python3

然后尝试安装gi软件包:

sudo apt install python3-gi

答案 2 :(得分:0)

这两个步骤可能对您有帮助

$ cd /usr/lib/python3/dist-packages/gi
$ sudo ln -s _gi.cpython-{36m,37m}-x86_64-linux-gnu.so

答案 3 :(得分:0)

这是一个老问题,但如果有人需要快速解决方案,这并不意味着在任何地方更改默认 Python 版本,只需:

sudo python3.6 /usr/bin/apt-add-repository ppa:mosquitto-dev/mosquitto-ppa

答案 4 :(得分:-2)

请按照以下步骤解决此问题。

(1)ls -al / usr / bin | grep python

(2)sudo gedit / usr / bin / add-apt-repository

然后将!/ usr / bin / python3更改为

!/usr/bin/python3.6