PyCharm无法解析PyGObject 3.0,但代码可以正常运行。

29

我在Ubuntu 11.10上使用PyCharm 2.5开发一个应用程序,使用Python 3.2.2和PyGObject 3.0。我已经安装了Ubuntu包python3-gobject,当我运行我的代码时,它按预期工作。

然而,PyCharm似乎无法找到任何PyGObject模块。当我悬停在import语句中的Gtk上时,它会显示“Unresolved refrence: 'Gtk'”,当然也不会有自动完成。

这是我的代码:

#!/usr/bin/env python3

from gi.repository import Gtk

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

我甚至尝试创建了一个Python虚拟环境,然后从源代码安装PyGObject到其中,然后甚至尝试将所有位于site-packages/gi/overrides目录下的.py文件创建符号链接指向site-packages/gi/repository目录,但都没有成功。

非常感谢您提供任何建议!

2个回答

61

在红线标记的 Gtk 中放置文本光标:

from gi.repository import Gtk

按下 Alt + Enter,选择“为二进制模块生成存根”


33

在 Gtk+ 3 中,使用 *.typelib 数据库动态生成二进制模块的 Python 绑定。用于访问所有模块的动态导入程序位于 gi.repository 中。由于这些模块需要特殊处理,因此 PyCharm 无法使用其代码洞察力检测到这些模块。

我已经为此问题提交了功能请求:PY-6932。请随意为其投票。


啊,PyGObject 真的很高级。我投了你的票,也许有一天我们可以实现它!:D - HOLOGRAPHICpizza
此外,还有其他的IDE支持这个吗?我即将开发一个中等规模的GTK+ 3应用程序,并希望有一个好的IDE来使用它。这个功能叫什么名字,以便我可以搜索它? - HOLOGRAPHICpizza
你可以使用bpython或bpython3。 - Rufus_12
23
问题已经解决。根据支持人员的建议,在“from gi.repository import Gt<caret>k”上按下“Alt + Enter”,然后选择“为二进制模块生成存根”即可解决问题! - Carson Ip
请在以下链接中更新您的答案和解决方案:https://dev59.com/bGgu5IYBdhLWcg3wTVc6#33646560 - Udi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接