Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why PyCharm can't import Gtk? [duplicate]

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 244
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 93
Spatz Avatar answered Nov 08 '22 00: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 26
Andrey Vlasovskikh Avatar answered Nov 07 '22 23:11

Andrey Vlasovskikh