无法导入名称“_gi”

新手上路,请多包涵

我正在尝试使用 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 命令,但运行一个 Python 文件 python3 {file} 工作。

谢谢您的帮助 !

原文由 Hugo Sohm 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 752
2 个回答

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

所以通过使用将它切换回 3.6

 sudo update-alternatives --config python3

之后尝试安装 gi 包:

 sudo apt install python3-gi

原文由 M. Spiller 发布,翻译遵循 CC BY-SA 4.0 许可协议

感谢 Wilhelm 的评论,我发现解决方案是:

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

这对我在 Ubuntu 上使用 Python 3.7 很有效。

原文由 pranaychenna 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题