Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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!

like image 369
HOLOGRAPHICpizza Avatar asked Jul 10 '12 16:07

HOLOGRAPHICpizza


2 Answers

Position the text cursor inside the redlined Gtk in:

from gi.repository import Gtk

hit Alt + Enter and choose "Generate stubs for binary module"

like image 101
Spatz Avatar answered Nov 14 '22 22:11

Spatz


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.

like image 24
Andrey Vlasovskikh Avatar answered Nov 14 '22 21:11

Andrey Vlasovskikh