我需要安装什么包来开发 gedit 的插件?

我需要安装什么包来开发 gedit 的插件?

我使用的是 Ubuntu 12.04,安装了 Python 2.7.3 和 PyGObject,我想用 Python 为 Gedit 开发插件。我找到了一个看起来很简单的教程这里

根据教程,我需要 Gedit 模块与插件界面进行交互:

from gi.repository import GObject, Gedit

尝试导入 Gedit 模块时,我不断收到导入错误。因此,我的问题是:我需要安装什么包才能获得此模块?

我试过了:gedit-devgedit-plugins

编辑:这是上述语句的完整回溯:

ERROR:root:Could not find any typelib for Gedit
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name Gedit

答案1

如果我不使用 Gedit 而直接运行插件代码,我会得到与您相同的错误。

正如您链接的手册中所述,您需要为插件代码创建一个 .plugin 文件。将您的插件代码和 .plugin 文件放入 ~/.local/share/gedit/plugins。重新启动 Gedit。打开 Gedit > 编辑 > 首选项 > 插件并查找您的插件。为您的插件设置复选标记。您的插件现在应该使用 Gedit 代码运行。

要检查插件中的错误,请从控制台启动 gedit。

答案2

回答你的问题,开发 gedit 插件所需的类型库包含在 gedit 包本身中。

$ apt-file search Gedit-3.0.typelib
gedit: /usr/lib/gedit/girepository-1.0/Gedit-3.0.typelib

但是,当以交互方式或从脚本使用 python 时,from gi.repository import Gedit会搜索/usr/lib/girepository-1.0/而不是/usr/lib/gedit/girepository-1.0。这就是导入错误的原因。

您需要在 ~/.local/share/gedit/plugins 中创建适当的 .plugin 和 .py 文件,然后通过在 gedit 首选项对话框中选择插件来运行您的代码。

答案3

导入错误Gedit可能表示GtkSource-3.0.typelib缺失或未正确安装。

典型症状还包括您无法加载多个插件(不仅仅是您自己开发的插件),并且gedit从命令行启动时会收到警告(在 Ubuntu 13.10 Saucy 上看到)。您可以通过安装缺少的软件包来修复此问题:

sudo apt-get install gir1.2-gtksource-3.0

也可以看看:从 Ubuntu 终端启动 gedit 时出现警告

还请注意,GEdit v3 的插件使用的python3是 Python 2.7.x 版本。

相关内容