可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I'm developing an app which has to be 100% compatible on windows and on linux. On linux I have no problems, but on windows I came up with this message: from gi.repository import Gtk ImportError: No module named gi
I installed pygobject, pygtkallinone, gtk.. what am I missing?
回答1:
Most of Havok answer is correct, except that documentation has been improved a lot lately, with a Tutorial:
Including a PDF version for offline reading:
And a complete API reference manual, not only of Gtk but also many other libraries that you can use with introspection:
on windows the support is great, a lot of effort has been put in creating all the windows executables and libraries, the last release of pygi-aio is 3.10.6:
I've also put instructions on the Gnome wiki on how to build on win32 with pygobject introspection, it's not that hard, I've also uploaded a setup.py that actually works:
So the answer is, don't go with PyGTK
回答2:
gi.repository
module is called PyGObject and is for Gtk+3 and is not yet available for Windows (there has been experiments, but is not ready AFAIK). https://live.gnome.org/PyGObject
gtk
module is called PyGtk and is for Gtk+2 and is very mature on Windows platforms (in particular 2.24). http://www.pygtk.org/
What's the difference?
- PyGObject has some scarse Windows support. PyGtk has great support for this OS.
- PyGObject is what is called a dynamic binding and PyGtk is a static one.
- PyGObject is new and the future and PyGtk is the past, mature and some day will be deprecated.
- PyGObject documentation and examples are very very limited, and PyGtk one are very very complete: http://developer.gnome.org/pygtk/stable/
- They are not compatible, you can't use both and you need to choose one.
- PyGObject is in active development, no new features will be introduced for PyGtk.
- If you use Glade, the lastest version will be for PyGObject (for example 3.12.1). If you want to use Glade for PyGtk install the 3.8.0 version.
If you choose to go PyGtk there is great support for freezing the application. You can check my documentation and support files for my application here: http://sourceforge.net/p/nestededitor/code/247/tree/trunk/dist/windows/
Hope it helps.
EDIT:
Many things have changed in two years. Please see gianmt answer.