PyCharm 无法解析 PyGObject 3.0,但代码运行良好

Posted

技术标签:

【中文标题】PyCharm 无法解析 PyGObject 3.0,但代码运行良好【英文标题】:PyCharm can not resolve PyGObject 3.0, but code runs fine 【发布时间】:2012-07-10 04:50:05 【问题描述】:

我在 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/overridessite-packages/gi/repository 中的所有 .py 文件创建符号链接,但都没有成功。

任何建议将不胜感激!

【问题讨论】:

【参考方案1】:

将文本光标定位在红线Gtk中:

from gi.repository import Gtk

点击 Alt + Enter 并选择“为二进制模块生成存根”

【讨论】:

【参考方案2】:

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

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

【讨论】:

啊,PyGObject 确实很花哨。为您的功能投票,也许有一天我们可以拥有它! :D 另外,还有其他 IDE 支持吗?我即将开发一个中等大小的 GTK+ 3 应用程序,并且希望有一个好的 IDE 用于它。这个功能会被称为什么,以便我可以搜索它? 你可以使用 bpython 或 bpython3 问题已解决。从支持中,它说:“在from gi.repository import Gt<caret>k 上点击Alt + Enter 并选择“为二进制模块生成存根”“并且它起作用了! 请通过***.com/a/33646560/57952的解决方案更新您的答案

以上是关于PyCharm 无法解析 PyGObject 3.0,但代码运行良好的主要内容,如果未能解决你的问题,请参考以下文章

使用 Pygobject 和 Python 3 从内存数据中显示图像

Windows 上的 PyGObject

如何使用 PyGObject 使窗口居中

在 virtualenv 中通过 pip 安装 PyGObject [重复]

用 pygobject 编写 D-Bus 服务?

如何使用 GTK3 和 PyGObject 绘制 GdkPixbuf