17

我正在开发一个必须在 windows 和 linux 上 100% 兼容的应用程序。在linux上我没有问题,但在windows上我想出了这个消息:from gi.repository import Gtk ImportError: No module named gi

我安装了 pygobject、pygtkallinone、gtk .. 我错过了什么?

4

2 回答 2

20

Havok 的大部分答案都是正确的,除了文档最近有了很大的改进,有一个教程:

包括用于离线阅读的 PDF 版本:

以及完整的 API 参考手册,不仅包括 Gtk,还包括许多其他可用于自省的库:

在 windows 上支持很好,在创建所有 windows 可执行文件和库方面付出了很多努力,pygi-aio 的最新版本是 3.10.6:

我还在 Gnome wiki 上发布了关于如何使用 pygobject 自省在 win32 上构建的说明,这并不难,我还上传了一个实际有效的 setup.py:

所以答案是,不要使用 PyGTK

于 2014-01-06T11:15:45.900 回答
15

gi.repository模块被称为PyGObject并且适用于 Gtk+3 并且还不能用于 Windows(有实验,但还没有准备好 AFAIK)。https://live.gnome.org/PyGObject

gtk模块称为PyGtk,用于 Gtk+2,在 Windows 平台(特别是 2.24)上非常成熟。http://www.pygtk.org/

有什么不同?

  • PyGObject 有一些稀少的 Windows 支持。PyGtk 对这个操作系统有很好的支持。
  • PyGObject 是所谓的动态绑定,而 PyGtk 是静态绑定。
  • PyGObject 是新的和未来的,PyGtk 是过去的,成熟的,总有一天会被弃用的。
  • PyGObject 文档和示例非常有限,PyGtk 一个非常非常完整:http: //developer.gnome.org/pygtk/stable/
  • 它们不兼容,你不能同时使用它们,你需要选择一个。
  • PyGObject 正在积极开发中,不会为 PyGtk 引入新功能。
  • 如果您使用 Glade,最新版本将用于 PyGObject(例如 3.12.1)。如果你想使用 Glade for PyGtk 安装 3.8.0 版本。

如果您选择使用 PyGtk,则可以很好地支持冻结应用程序。您可以在此处查看我的应用程序的文档和支持文件:http: //sourceforge.net/p/nestededitor/code/247/tree/trunk/dist/windows/

希望能帮助到你。

编辑:

两年来,很多事情都发生了变化。请参阅 giamt 答案。

于 2012-10-20T08:13:36.717 回答