ImportError: 找不到名为 gi.repository 的模块

15 投票
8 回答
45480 浏览
提问于 2025-04-18 05:51

我正在尝试在Ubuntu 10.04上运行一个Python脚本:

from gi.repository import Nautilus, GObject

但是它没有成功:

Traceback (most recent call last):
  File "script.py", line 1, in <module>
    from gi.repository import Nautilus, GObject
   ImportError: No module named gi.repository

我安装了 python-gobject-devpython-gobjectpython-nautilus,但这些都没有解决问题。 有没有人遇到过这个问题?

8 个回答

2

你需要安装 pygobject 和 pygobject3(这里的3是指gtk的版本,而不是python的版本)。

如果你在使用Mac电脑:

  • ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null 这条命令是用来安装最新版本的Homebrew,一个包管理工具。
  • brew install pygobject 这条命令用来安装pygobject。
  • brew install pygobject3 这条命令用来安装pygobject3。
  • mkdir -p /Users/abhijit/Library/Python/2.7/lib/python/site-packages 这条命令是检查并创建一个目录,如果这个目录不存在的话。
  • echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/abhijit/Library/Python/2.7/lib/python/site-packages/homebrew.pth 这条命令是在你的python的Site-packages中创建一个指向homebrew路径的快捷方式。
3

Anaconda 通常会提供适合你操作系统(比如Mac或旧版Ubuntu)的Python软件包。根据@Abhijit的说法,你需要 pygobject。它的工作方式和 pip 很相似:

conda install -c auto pygobject
4
sudo apt-get install -y python-gobject

在Ubuntu 18.04上我解决了这个问题。

4

我试过@hob给的Anaconda的解决办法,但没用。不过我用conda install -c conda-forge pygobject这个命令就成功了。

10

试着通过安装 PyGObject 来解决这个问题:

# With Apt on Ubuntu:
$ sudo apt install python3-gi

# With Yum on CentOS / RHEL:
$ sudo yum install python36-gobject.x86_64 

# Or directly with Pip:
$ pip3 install PyGObject  

撰写回答