PyGTK在Windows下的状态

Reddit上看到有人在问PyGTK现在pygtk在windows下可用么

pygtk现在在Windows下还是可用的,但只支持gtk2.x和python2.6+,还没有正式支持gtk3.x及python3.x。就pygtk的各类库一体打包版来说,基本上还是稳定的,虽然还有一些小问题,但不影响使用。GTK+在Windows下中文的设置可以查看之前写的“Windows下GTK中文显示问题

GTK+现在在Windows下最麻烦的就是各个库的配合问题,一些小问题都是因为各个库的兼容问题导致,最典型的就是libcairo和gdk的问题,比如:

GtkWarning: gdkdrawable-win32.c:2013 drawable is not a pixmap or window

这就是cairo库版本更新后出现的非严重问题,出现这种问题一般就只能提高日志中信息记录的等级,这种警告信息不再记录,不然,每次都会出现这种警告信息很烦人。

gtk+在windows下的gtk+3可以说基本上还属于玩票性质。官方缺少windows版的维护人员,所以一直到3.4版正式发布后,windows版都没法出来。只有一些志愿者公开了一些自己编译的版本。

http://optionexplicit.be/projects/gnome-windows/GTK+3/gtk+/git有一份非正式的最新编译版本,是针对python2.7编译的,有兴趣的可以试一下。

在邮件列表上,Dieter Verfaillie给出了这个gtk+3 在windows下使用的一些说明:

1) those pygobject binaries (and the bundle in gtk+/git/) are
linked against 32 bit Python 2.7, so you'd need to install that first

2) make sure Python27/Lib/site-packages/pygtk.pth is renamed
to something else as the Gtk3 bundle does not agree with the PyGTK aio installer's way of ensuring PATH is set to something sane)

3) get the bundle from http://optionexplicit.be/projects/gnome-windows/GTK+3/gtk+/git and extract it to C:\Gtk3 4) create a C:\Gtk3\bin\pygi.cmd file containing the following:

@echo off
set PATH=C:\Gtk3\bin;C:\Python27\;%PATH%
set PYTHONPATH=C:\Gtk3\lib\site-packages
set GI_TYPELIB_PATH=C:\Gtk3\lib\girepository-1.0
C:\Python27\python.exe %*

Adjust paths to match your installation directories but note you should avoid spaces in paths completely for both the location of the bundle and the installation location of Python.

If you want to test pygobject's demos/gtk-demo/gtk-demo.py, you'll need to patch is like this:

from gi.repository import GLib, GObject, Gio, Pango, GdkPixbuf, Gtk

#ugly win32 hack
GLib.file_test = GLib.file_test_utf8
GLib.file_get_contents = GLib.file_get_contents_utf8
GdkPixbuf.Pixbuf.new_from_file = GdkPixbuf.Pixbuf.new_from_file_utf8
#end ugly hack

DEMOROOTDIR = os.path.abspath(os.path.dirname(__file__))

Note that these binaries: - are not intended to be used in production systems

  • are built with debug symbols (mingw.org's gdb works well)

  • are built from the experimental "windows" branches of various "forks" on my github page, which are in various stages of not yet ready or good enough for upstream

  • do not come with any warranty whatsoever, etc

mvg,

Dieter

还有就是在http://www.tarnyko.net/?q=node/1提供了一份GTK3+的win32下的安装包,只是没有上面的新。

还有就是 OpenSuSE 的自动编译系统提供的Windows版本,但这个需要下载的东西太多。有人提供了一份运行在python3下的脚本http://www.bosmans.ch/pulseaudio/download-mingw-rpm.py来帮助下载所需要的包,详细说明可以看这里

总体来说,GTK+在Windows下的进展很缓慢,这是因为贡献者很少,GTK+的主力开发人员没有使用Windows的,大部分贡献者也都是非Windows平台下使用GTK+,这导致GTK+在Windows下的改进或版本跟进都要慢很多。一个好用的GTK+ for windows版本,往往意味着一个主要相关库都能较好的在Windows下兼容和正常使用,所以一个稳定GTK+ for windows版本的发布就变得异常难得了。在去年windows下的志愿维护人员宣布停止维护后,GTK+3的windows稳定版本的发布就有些遥远了。

标签: windows, gtk, pygtk

仅有一条评论

  1. 北京娱乐

    请问如何“提高日志中信息记录的等级”呢?谢谢!

添加新评论