gi.repository 窗口

Posted

技术标签:

【中文标题】gi.repository 窗口【英文标题】:gi.repository Windows 【发布时间】:2012-10-10 11:23:27 【问题描述】:

我正在开发一个应用程序,它必须在 Windows 和 linux 上 100% 兼容。在linux上我没有问题,但在windows上我想出了这个消息: 从 gi.repository 导入 Gtk ImportError: 没有名为 gi 的模块

我安装了 pygobject、pygtkallinone、gtk.. 我缺少什么?

【问题讨论】:

天啊,这很快,而且奏效了!!谢谢:D gi 用于 PyGObject,即 GTK+3,每个模块都大写。当您使用 import gtk 时,您正在使用 PyGTK (GTK+2)。 【参考方案1】:

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

http://python-gtk-3-tutorial.readthedocs.org/en/latest/

包括离线阅读的PDF版本:

http://media.readthedocs.org/pdf/python-gtk-3-tutorial/latest/python-gtk-3-tutorial.pdf

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

http://lazka.github.io/pgi-docs/

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

http://sourceforge.net/projects/pygobjectwin32/files/?source=navbar

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

https://wiki.gnome.org/action/show/Projects/PyGObject?action=show&redirect=PyGObject#Building_on_Win32_with_cx_freeze

所以答案是,不要使用 PyGTK

【讨论】:

很好的答案,谢谢。很高兴知道这些年来许多事情都得到了改善。 很好的答案。 pygi-aio 的版本甚至在一天前就涨到了 3.14。 http://sourceforge.net/projects/pygobjectwin32/files/?source=navbar 提供的文件根本不起作用。安装程序复制东西,但使用from gi.repository import Gtk时python无法加载任何库。 显然 Python 3.5 还不支持,因为我们可以在 readme.txt 中阅读:PyGI 3.18.2 AIO rev6 for python 2.7, 3.1, 3.2, 3.3 and 3.4 (32bit/64bit)Python 3.5 port is WIP【参考方案2】:

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 答案。

【讨论】:

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

以上是关于gi.repository 窗口的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Python3 中导入 gi.repository

Python使用gi.repository结合了两个函数

svn的使用流程

SVN服务搭建和使用

SVN服务器使用

VisualSVN Server使用2