# dbus-python: Python bindings for D-Bus

# Usage

Online documentation can be found at <http://dbus.freedesktop.org/doc/dbus-python/>.

There is an incomplete tutorial in doc/tutorial.txt (if you compile dbus-python with docutils' `rst2html` tool installed or you're reading this document on the D-Bus website, there's also an HTML version).

API documentation is generated if you compile dbus-python with epydoc version 3 and docutils installed. An online copy of the API documentation is also available.

To develop on dbus-python, see doc/HACKING.txt or the HTML version.

# Problems and alternatives

dbus-python might not be the best D-Bus binding for you to use. dbus-python does not follow the principle of "In the face of ambiguity, refuse the temptation to guess", and can't be changed to not do so without seriously breaking compatibility.

In addition, it uses libdbus (which has known problems with multi-threaded use) and attempts to be main-loop-agnostic (which means you have to select a suitable main loop for your application).

Alternative ways to get your Python code onto D-Bus include:

- GDBus, part of the GIO module of GLib, via GObject-Introspection and PyGI (uses the GLib main loop and object model)
- QtDBus, part of Qt, via PyQt (uses the Qt main loop and object model)