(Experimental) GTK+ / GObject Introspection Bindings for PyPy
Python C Makefile
Latest commit 20145a4 Jan 11, 2017 @lazka lazka GLib.spawn_async doc override


PGI - Pure Python GObject Introspection Bindings

GObject Introspection bindings written in pure Python using ctypes and cffi (optional). API compatible with PyGObject.

Development Status:

WARNING: Lots of things are not implemented/supported.

See the 'examples' directory for working examples. Anything else will probably not work.

Code: https://github.com/lazka/pgi

License: LGPL 2.1+



from pgi.repository import Gtk, GObject

or (preferred)

import pgi
from gi.repository import Gtk, GObject

Search paths

Typelibs will be loaded from paths in the environment variable GI_TYPELIB_PATH and /usr/lib/girepository-1.0/.

Shared libraries from paths in LD_LIBRARY_PATH and the default system search paths (see dlopen(3)).


PGI docs:
Autogenerated GI docs:


  • ./setup.py test will run unit tests using PGI and PyGObject
  • ./setup.py test --pgi-only to skip PyGObject tests
  • ./setup.py test --filter=StructTest to run tests which include StructTest (regexp)

./tests/libs/ includes additional libraries that will be used for testing if present. Call make in ./tests/libs/ to build them.

  • ./setup.py quality will run pep8 and pyflakes tests
  • ./setup.py coverage will create a test coverage report