PyCharm - autocomplete for Gtk3 magically stops working

回眸只為那壹抹淺笑 提交于 2019-12-06 00:58:34

问题


I have this weird problem - I'm learning Gtk3 on Windows 7 with PyCharm Community 3.4.1. When I try to import Gtk:

from gi.repository import Gtk

it underlines Gtk as unresolved reference, becouse it's a binary module. Then I press Alt+Enter and choose "Generate methon stubs for binary module..." and wait until it it finishes indexing. Then I happily write this simple empty window with autocomplete working correctly:

class Okienko(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title='Okienko')

app = Okienko()
app.connect('delete-event', Gtk.main_quit)
app.show_all()
Gtk.main()

I run it, it shows me a nice empty Gtk window. So far so good.

BUT.

Bad things happen - autocomplete for Gtk module simply vanishes! from gi.repository import Gtk gets underlined red and autocomplete gives me just names which I've previously used (Window and main in this case). The only thing I can do is to Invalidate cache and restart Pycharm and go over this procedure again... I also tried .NET classes in IronPython - it's even worse, indexing takes several minutes and doesn't even finish.


回答1:


In PyCharm community edition 3.4.1 (mint 17), to make Gtk3 autocompletion works:

  1. In file: "pycharm.community-3.4.1/bin/idea.properties" comment the line: "idea.max.intellisense.filesize=2500"
  2. Restart the IDE
  3. In your code: from gi.repository import Gtk strike Alt-Enter and select "Generate stubs for binary module"



回答2:


I had the same issue and found out that the Gtk.py file is too big for IDE file size limit allowed by PyCharm. I changed the config value "idea.max.intellisense.filesize" in idea.properties from 2500 to 10000. The stub generation takes some time but finishes now.

Hope that helps even Windows users. Feedback appreciated.



来源:https://stackoverflow.com/questions/24254065/pycharm-autocomplete-for-gtk3-magically-stops-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!