导入错误:没有名为gi.repository的模块。

15

我正在尝试在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个回答

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  

4
sudo apt-get install -y python-gobject

我在Ubuntu 18.04上修复了它。


4

@hob的Anaconda解决方案对我不起作用,但是conda install -c conda-forge pygobject可以。


1
你说得对。看起来conda不再支持“-c auto”了,如果你的conda配置中没有设置,“-c conda-forge”是正确的渠道。 - hobs

3

Anaconda通常具有适用于您所使用的平台(Mac或旧版Ubuntu)的Python软件包二进制文件。根据@Abhijit的说法,您需要pygobject。它的工作方式与pip非常相似:

conda install -c auto pygobject

2
你需要安装pygobject和pygobject3(3代表gtk版本,不是python版本)。
如果你使用的是Mac:
- 安装最新版本的homebrew:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null - 安装pyobject:brew install pygobject - 安装pyobject3:brew install pygobject3 - 检查并建立sitepath目录(如果不存在):mkdir -p /Users/abhijit/Library/Python/2.7/lib/python/site-packages - 在python Site-packages中创建一个到homebrew路径的快捷方式:echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/abhijit/Library/Python/2.7/lib/python/site-packages/homebrew.pth

1

10.04?那是GNOME 3之前的版本,因此首选的Python绑定基于PyGTK而不是PyGObject。您需要使用(已过时的)PyGTK绑定或升级到较新的操作系统。


1
这对我很有帮助(适用于Ubuntu 20.04 LTS):
sudo apt reinstall python3-gi

0
非常简单。 打开 /usr/bin/gnome-terminal,你可以看到解释器是 python3:
#!/usr/bin/python3

将解释器的路径更改为python3.5:

#!/usr/bin/python3.5

在Ubuntu 16.04上为我修复了它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接