Ubuntu 12.04とpython 2.7.3およびPyGObjectを使用していますが、PythonでGeditのプラグインを開発したいと思います。この種の単純な見た目のチュートリアルを見つけました here 。
チュートリアルによれば、プラグインインターフェイスとやり取りするにはGeditモジュールが必要です。
from gi.repository import GObject, Gedit
Geditモジュールをインポートしようとすると、インポートエラーが発生し続けます。だから、私の質問は次のとおりです。このモジュールを取得するには、どのパッケージをインストールする必要がありますか?
試しました:gedit-dev
、gedit-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
質問に答えるために、geditプラグインの開発に必要なtypelibは、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設定ダイアログでプラグインを選択してコードを実行する必要があります。
Geditを使用せずにプラグインコードを直接実行すると、同じエラーが表示されます。
リンクしたマニュアルで説明されているように、プラグインコード用の.pluginファイルを作成する必要があります。プラグインコードと.pluginファイルを〜/ .local/share/gedit/pluginsに配置します。 Geditを再起動します。 Gedit> Edit> Preferences> Pluginsを開き、プラグインを探します。プラグインのチェックマークを設定します。プラグインはGeditコードを使用して実行されます。
プラグインのエラーを確認するには、コンソールからgeditを起動します。
Gedit
のインポートエラーは、GtkSource-3.0.typelib
がないか、正しくインストールされていないことを示している可能性があります。
典型的な症状は、いくつかのプラグイン(自分で開発したものだけでなく)をロードできないこと、およびコマンドラインからgedit
を起動すると警告が表示されることです(Ubuntu 13.10 Saucyで表示)。不足しているパッケージをインストールすることでこれを修正できます:
Sudo apt-get install gir1.2-gtksource-3.0
参照: buntuターミナルからgeditを起動する際の警告
また、GEdit v3のプラグインはPythonのバージョン2.7.xの代わりにpython3
を使用することに注意してください。