This site is out-of-date and probably won't ever be updated. Please go to the official PyGTK site:

http://www.pygtk.org/

A resource promoting the use of GNU's development tools with the Python scripting language.
 
PyG Tools: Table of Contents

Check with PyG Tools: Headline News! for late breaking news about Python and GNU.

GTK and GNOME information of interest to Python developers:

Python-GTK (PyGTK) Bindings by James Henstridge
PyGTK: What Configuration Do I Need???
PyGTK: Obtaining the Source Code
PyGTK: Obtaining Linux Packages
Python-GNOME (PyGNOME) Bindings by James Henstridge
PyGTK and PyGNOME Examples (with screenshots)
General GTK and GNOME, Screenshots and Themes
GTK and GNOME information of interest to C developers, as well as Python developers:
C-GTK and C-GNOME Examples
C-GTK Interactive Development Environments (IDE)
C-GTK Documentation
C-GDK Documentation
C-GLIB Documentation
C-GNOME Documentation
PyG Tools: Headline News!

07-Apr-00

ANNOUNCE: pygtk-0.6.6 gnome-python-1.0.53

James Henstridge writes:

I have just released pygtk-0.6.6 and gnome-python-1.0.53.  It is mainly
bug fixes.  The gtkhtml module should work correctly now (it uses
gnome-config to find the libraries to link with).  It also uses the CVS
version of automake (automake-1.4a) rather than my old automake patches,
and also uses libtool.

With this version, it is important that you pass the --prefix=/whatever
argument to configure.  Before it was ignored when installing the
packages, but now it isn't.  Either install under the same prefix as
python, add a .pth file to your python directory or set PYTHONPATH
correctly after installing.

If you have trouble building the shared libraries (eg. not getting the
correct extension, etc), it is probably a libtool defficiency, and should
be followed up with the libtool guys.  The tarballs include the latest
libtool version (1.3.4), so there shouldn't be too many problems.

The new packages are available from the usual locations:
  ftp://ftp.gnome.org/pub/GNOME/stable/sources/gnome-python/
  ftp://ftp.gtk.org/pub/gtk/python/ (soon)
  ftp://ftp.daa.com.au/pub/james/python/ (try to use one of the others)

05-Mar-00

PyGIMP and PyGTK for Win32

Hans Breuer writes:

PyGimp
------
To write Gimp Plug-Ins in Python. 

PyGtk
------
Despite of the other PyGtk port of K.J. Butler my port does use the M$VC
compiler, is compatible with the newest version of Gtk+ for Win32 by Tor
Lillquist; does neither crash with testgtk.py nor requires a patch to
Python.

They are available at:

http://www.hans.breuer.org/ports

19-Feb-00

New Python-GTK and Python-GNOME versions available

gnome-python-1.0.51, pygnome-1.0.51, and pygtk-0.6.4 are now available at The Open Lab in tarball and RPM form:

ftp://theopenlab.uml.edu/pub/

18-Feb-00

Python-Gnome Totorial

Daniel Kornhauser is working on the first comprehensive tutorial for the Python-Gnome bindings:

http://laguna.fmedic.unam.mx/~daniel/pygtutorial/

23-Jan-00

Python-Gnome Skeleton Program

Baruch Even writes:

"As per my request of several days ago, I created a small skeleton program that uses Python, Gnome and pyLibGlade. For other users benefit and for the record in the mail archive here is a url to my site."

http://techst02.technion.ac.il/~sbaruch/

04-Nov-99

Python Code Generator for Glade

Bill Allen has a Python code generator for Glade (Glade builds GTK+ interfaces and outputs XML and C code). This may be included in future versions of PyGTK:

http://www.serve.com/ballen/glc/glc.html

04-Nov-99

The Ten Minute Total Idiot's Guide to using Gnome/Gtk+ & Glade with Python

Deirdre Saoirse, Open Source Developer for Linuxcare, made a short tutorial for developing applications with pygtk/gnome plus libglade:

http://www.baypiggies.org/10mintig.html

21-Oct-99

ANNOUNCE: PyGTK ported to Win32

After "countless hours" thinking that he should port PyGTK to Windows, Kevin Butler actually went ahead and did it:

http://www.geocities.com/kevin_j_butler/pygtk/

10-Sep-99

ANNOUNCE: PyORBit: Python/ORBit (CORBA) Bindings

PyORBit is a project to create Python bindings for ORBit, a fast, lightweight CORBA ORB used by the GNOME Desktop for application and component interaction (similar to Microsoft's COM). These bindings will be distributed under the GNU LGPL license. PyORBit will follow the proposed OMG Python bindings to insure compliance and compatibility, but we will also consider non-standard, optional extensions to improve performance and add features, if necessary.

http://theopenlab.uml.edu/pyorbit/

Python-GTK (PyGTK) Bindings by James Henstridge

Eric Harlow describes GTK, GDK and GLib:

The GTK [Gimp Tool Kit] is a widget library that relies on the GIMP Drawing Kit (GDK), which is a wrapper around Xlib.  The GTK calls the GIMP Drawing Kit for anything dealing with the display of the widgets.

The GDK is supposed to be a platform dependent API which sits on top the native graphics API (Xlib, Win32) and provides a graphics interface API.  Because GDK sits as a layer between Xlib and GTK, GTK could be ported to other operating systems by changing the GDK.

Both GTK and GDK rely heavily on the GLib library, which provides functions for handling many common data types like lists, trees, and strings as well as providing memory allocation functions and error handling.

James Henstridge (james@daa.com.au) is the developer of the most complete language bindings of GTK (and GNOME) to Python.  Quoting James...
PyGTK is a set of bindings for the GTK widget set. It provides an object oriented interface that is slightly higher level than the C one. It automatically does all the type casting and reference counting that you would have to do normally with the C API.
James has a home page for PyGTK:
http://www.daa.com.au/~james/pygtk/
To subscribe to his mailing list, send a message to pygtk-request@daa.com.au, with the word subscribe in the body of the message. There is also an archive for the list:
http://www.mail-archive.com/pygtk@daa.com.au/
PyGTK: What Configuration Do I Need???

PyGTK runs on UNIX variants and now 32-bit Windows.  There is currently no port of the PyGTK (or PyGNOME) bindings to the Macintosh, OS/2 or BeOS. But C-GTK has been ported to OS/2 and BeOS, so it should only be a matter of time (any volunteers?).  From the GTK home page...

While GTK+ was developed for the X Window System, there is already work underway to port GTK+ to Windows-based systems. Thus, GTK+ will, in the future, be a viable way to create applications which work on both UNIX-based systems and Windows systems.
Note that GTK plus GDK is called "GTK+".  The "GTK library" mentioned here includes GTK+ and GLib

For Linux/UNIX, you will need at least these resources on your system:

Standard Linux/UNIX:

ld-linux.so.2
libc.so.6
libdl.so.2
libm.so.6
/usr/bin/env
Standard X-Windows:
libX11.so.6
libXext.so.6
libXi.so.6
The GTK library:  (The sections below give instructions on obtaining what you need.)
libgdk-x.x
libglib-x.x
libgtk-x.x
Unlike Tkinter, PyG Tools do not use Tcl/Tk whatsoever.  Python is the only scripting language used.
 
PyGTK: Obtaining the Source Code

To get the source code for the latest version of PyGTK for UNIX variants, check out the following FTP sites: (This is the best bet for non-x86 Linux and other Unices.)

ftp://ftp.daa.com.au/pub/james/python
ftp://ftp.gtk.org/pub/gtk/python
ftp://ftp.python.org/pub/python/contrib/Graphics
You will need the latest GTK library (GTK, GDK and GLib) as well.  There is more information on the C implemenation of these below.  (Note again that GTK+ contains both GTK and GDK, but not GLib.)
ftp://ftp.gtk.org/pub/gtk/
For PyGTK on Win32, visit the following Web site:
http://www.geocitie\s.com/kevin_j_butler/pygtk/
PyGTK: Obtaining Linux Packages

If you would like to install the bindings on your x86 Linux box, the Rufus RPM Repository has a relatively recent version (0.5.3):

http://rufus.w3.org/linux/RPM/contrib/libc6/i386/pygtk-0.5.3-1.i386.html
You will need the following GTK library as well (try 1.1.2):  (Check with the above link to be sure you have all of the resources.)
http://rufus.w3.org/linux/RPM/libgtk-1.1.so.2.html
http://rufus.w3.org/linux/RPM/libgdk-1.1.so.2.html
http://rufus.w3.org/linux/RPM/libglib-1.1.so.3.html
There may be versions available that are newer and work with other platforms.  Check Rufus.
 
Python-GNOME (PyGNOME) Bindings by James Henstridge

Quoting Miguel de Icaza...

The GNOME libraries add the missing pieces to the [GTK] toolkit to create full applications, dictate some policy, and help in the process of providing consistent user interfaces, as well as localizing the GNOME applications so they can be used in various countries.
The current GNOME libraries are: GTK+-xmhtml, gnome-print, libgnome, libgnomeui, libgnorba, libgtop, gnome-dom and gnome-xml. Other libraries are used for specific applications: libPropList (soon to be replaced by a new configuration engine) and audiofile.
The GNOME canvas is so nice, you may want to use the GNOME libraries just for that widget.  It was actually designed after the Tk canvas, so Tkinter developers should be quick to pick it up.  Check out the home page (large screenshots):
http://www.gnome.org/devel/canvas/
James has written bindings to the GNOME libraries as well.  To get the source code for the latest version of PyGNOME, go to the following FTP sites:
ftp://ftp.daa.com.au/pub/james/python
ftp://ftp.gtk.org/pub/gtk/python
ftp://ftp.python.org/pub/python/contrib/Graphics
You will need the GNOME libraries (gnome-libs), which can be found by following this link:
http://www.gnome.org/ftpmirrors.shtml
Note: PyGTK and PyGNOME come together with the gnome-python distribution.
 
PyGTK and PyGNOME Examples

The PyGTK distribution comes with some examples.  I will include them here shortly.

Here are some other applications being developed:

PyGTK:

Barfly, by David M. Cook:

Home page: http://members.home.net:80/davecook/projects/
Screenshot: http://members.home.net:80/davecook/barfly/barfly.gif
Source code: http://members.home.net:80/davecook/barfly/
Gconfig, by Sam Tannous:
Home page: http://www.employees.org/~stannous/gconfig.html
Screenshot: http://www.employees.org/~stannous/gconfig.jpg
Source code (one file): http://www.employees.org/~stannous/gconfig-0.3.py
PyGNOME:

Icepick, by Daniel Kornhauser:

Home page: http://merengue.iimas.unam.mx/
Screenshot: http://merengue.iimas.unam.mx/images/latest_screenshot.jpg
Source code (gzipped): http://merengue.iimas.unam.mx/src/
PasswordSafe, by Justus Pendleton:
Home page: http://www.110.net/~pq1662/PasswordSafe/
Source code (bzipped): http://www.110.net/%7epq1662/PasswordSafe/psafe.tar.bz2
Brain, by Chi-Deok Hwang
Source code: http://pseudo.snu.ac.kr/~hwang/python/brain.py
Pygmy, by Kjetil Jacobsen
Home page: http://www.cs.uit.no/~kjetilja/Pygmy/
The Loci Project, by The Open Lab
Home page: http://theopenlab.uml.edu/loci/
Mavric, by The Open Lab
Home page: http://theopenlab.uml.edu/mavric/
General GTK and GNOME, Screenshots and Themes

Some screenshots of GTK+ widgets can be found at the GTK Web site:

http://www.gtk.org/screenshots/
Wow!  GTK+ widgets and thus the PyG Tools are theme-able!  (Try that with Tkinter.)  Check out this Web site:
http://themes.org/gtk/cgi-bin/gto.cgi?index
GTK+ themes work directly with the GTK library during run-time.  There is no need to change the GTK library for your application to change themes.  In fact, a user can switch the theme of all GTK applications running, while they are running!
 
C-GTK and C-GNOME Examples

C-GTK Application Repository:

http://sunsite.unc.edu/gtk/cgi-bin/gtkshow
C-GNOME Software Map:
http://www.gnome.org/applist/
C-GTK Interactive Development Environments (IDE)

These may be of some interest to PyG developers.  GLADE and gIDE currently work with C and C++.  I expect Python to follow.

http://glade.pn.org/
http://gide.pn.org/
C-GTK Documentation

The official GTK+ FAQ:

http://www.gtk.org/faq/
The official GTK+ tutorial:
http://www.gtk.org/tutorial/
SEGV also has a tutorial for GTK+:
http://www.cgocable.net/~mlepage/gtk-tutorial/
The official GTK+ Reference Guide:
http://www.gtk.org/docs/gtk_toc.html
Eric Harlow is writing a book on GTK+ development and has posted some of it on his site:
http://www.bcpl.net/~eharlow/book
C-GDK Documentation

Again, GDK is a thin drawing layer over Xlib. GTK uses GDK to do all aspects of creating windows, drawing, etc.

Peter Mattis wrote the GDK documentation:

http://www.gtk.org/docs/gdk_toc.html
C-GLIB Documentation

As mentioned above, GLib is a C library designed to solve some portability problems and provide other useful functionality most programs require. GLib is used by GTK, GDK, and many applications.

Damon Chaplin's GLIB documentation:

http://glade.pn.org/glibdocs/
Gregory McLean's GLIB documentation:
http://www.gtk.org/docs/glib_toc.html
C-GNOME Documentation

GNOME documentation for C developers:

http://www.gnome.org/devel/gnome-dev-info/book1.html
That's all folks!