HOLOGRAPHICpizza HOLOGRAPHICpizza - 1 month ago 8
Python Question

PyCharm can not resolve PyGObject 3.0, but code runs fine

I'm using PyCharm 2.5 on Ubuntu 11.10, trying to develop an application using PyGObject 3.0 on Python 3.2.2. I've installed the Ubuntu package python3-gobject, and when I run my code, it works exactly as expected.

However, PyCharm can not seem to find any of the PyGObject modules. It says

Unresolved refrence: 'Gtk'
when I hover over Gtk in my import statement, and of course none of the auto-completion works.

This is my code:

#!/usr/bin/env python3

from gi.repository import Gtk

win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()


I've even tried making a python virtual environment and then installing PyGObject from source into it, and then even tried making symlinks from all the .py files in
site-packages/gi/overrides
to
site-packages/gi/repository
, all with no luck.

Any advice would be greatly appreciated!

Answer

In Gtk+ 3 Python bindings to binary modules are generated dynamically using *.typelib databases. The dynamic importer for accessing all the modules is located in gi.repository. PyCharm cannot detect these modules using its code insight, because they require special handling.

I've filed a feature request for this issue: PY-6932. Feel free to vote for it.

Comments