gi.repository Windows

17
我正在开发一款应用程序,需要在Windows和Linux上都能100%兼容。 在Linux上没有问题,但在Windows上出现了以下消息: from gi.repository import Gtk ImportError: No module named gi
我已经安装了pygobject,pygtkallinone,gtk..我漏掉了什么吗?

哇,太快了,而且还成功了!谢谢 :D - Yerko Antonio
8
gi 是用于 PyGObject 的,PyGObject 是 GTK+3,每个模块都是大写的。当你使用 import gtk 时,你在使用 PyGTK(即 GTK+2)。 - gpoo
2个回答

20
大部分 Havok 的回答都是正确的,除了最近文档已经得到很大改善,并提供了教程:

还包括一个供离线阅读的 PDF 版本:

以及一个完整的 API 参考手册,不仅包含 Gtk,也包括许多其他可以通过内省使用的库:

在 Windows 上的支持非常好,花费了大量精力创建所有的 Windows 可执行文件和库,pygi-aio 的最新版本是 3.10.6:

我也在 Gnome 维基上放置了关于如何在 win32 上使用 pygobject 内省进行构建的说明,这并不难,我还上传了一个真正可用的 setup.py:

所以答案是不要使用 PyGTK。


2
很棒的回答,谢谢。很高兴知道很多事情在这些年里得到了改善。 - Havok
很棒的回答。pygi-aio的版本甚至在一天前就已经升级到了3.14。 - tobias47n9e
1
提供在 http://sourceforge.net/projects/pygobjectwin32/files/?source=navbar 的文件根本无法使用。安装程序会复制一些东西,但是当使用 from gi.repository import Gtk 时,Python 没有可加载的库。 - Lærne
显然,Python 3.5目前还不受支持,因为我们可以在readme.txt中读到这样的内容:PyGI 3.18.2 AIO rev6适用于python 2.7、3.1、3.2、3.3和3.4(32位/64位),而且Python 3.5 port正在进行中 - Creak

15
gi.repository 模块称为 PyGObject,用于 Gtk+3,并且目前尚不支持 Windows(虽然进行了一些实验,但还未准备好)。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)。如果您想要用于 PyGtk 的 Glade,请安装 3.8.0 版本。
如果选择使用 PyGtk,则有很好的支持来冻结应用程序。 您可以在此处检查我的应用程序的文档和支持文件:http://sourceforge.net/p/nestededitor/code/247/tree/trunk/dist/windows/ 希望这有所帮助。 编辑:

两年里发生了很多变化。请看gianmt的回答。


使用PyInstaller冻结PyGTK应用程序是否存在任何问题?py2exe仅适用于Windows。 - jfs
从未使用过PyInstaller进行测试,抱歉。 - Havok
PyGObject有一些文档,还不错:http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html - liberforce
是的,文档越来越好了,但那只是一个教程,并不是API参考。如果没有API参考,你无法进行严肃的PyGObject编程,因为你需要知道所有可用的函数、变量、信号等。良好的API文档是这个 http://developer.gnome.org/gtk3/stable/(适用于C)或http://developer.gnome.org/pygtk/stable/(适用于旧版PyGtk),PyGObject现在最好的文档是这个http://people.gnome.org/~johnp/girdocsalpha/Gtk/。随着时间的推移,文档生成工具会得到改进并允许在PyGObject中进行编程。 - Havok
发布日期:2013年1月27日 pygi-3.4.2_gtk+-3.6.4.7zhttp://opensourcepack.blogspot.de/p/pygobject-pygi-aio.html - Sam

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