Aus aktuellem Anlass hier mal ein Rant über das was mir gerade beim Rumspielen mit OpenEmbedded passiert ist. Die aktuelle Version hat nun auch „hob“ integriert, ein grafisches User-Interface. Und das macht Probleme.
Ich starte das mal von meiner Shell aus:
1 2 3 |
$ hob FATAL: Gtk+, PyGtk and PyGobject are required to use Hob, You have Gtk+ 2.20.1 and PyGtk 2.17.0. |
Also ein fatales Problem. Â Zum Glück steht da ja, was benötigt ist und was ich habe und so schließe ich messerscharf, dass es mir am passenden PyGobject mangelt. Mal sehen:
1 2 3 |
$ dpkg -l | grep python-gobject ii python-gobject 2.21.4+is.2.21.3-1 Python bindings for the GObject library ii python-gobject-dev 2.21.4+is.2.21.3-1 Development headers for the GObject Python bindings |
Aha. Also daran scheitert es nun nicht. Das Paket python-gobject und die Headers dazu sind installiert. Â Um dem Ärger auf die Spur zu kommen wenden wir nun die Macht des Spruches „use the source, Luke“ an:
1 2 3 4 5 6 7 8 9 10 11 12 |
requirements = "FATAL: Gtk+, PyGtk and PyGobject are required to use Hob" try: import gobject import gtk import pygtk pygtk.require('2.0') # to be certain we don't have gtk+ 1.x !?! gtkver = gtk.gtk_version pygtkver = gtk.pygtk_version if gtkver < (2, 20, 0) or pygtkver < (2, 21, 0): sys.exit("%s,\nYou have Gtk+ %s and PyGtk %s." % (requirements, ".".join(map(str, gtkver)), ".".join(map(str, pygtkver)))) |
Hier offenbart sich das ganze Elend dieses kurzen Programmstücks. Die in der Fehlermeldung angegebenen Pakete können alle da sein, aber wenn sie in der falschen Version vorhanden sind, dann bricht die Ausführung von hob eben mit einer absolut nutzlosen Fehlermeldung ab. Statt klar zu definieren, dass PyGtk eine zu kleine Version hat wird der Anwender auf eine falsche Fährte gesetzt und hat ohne den Blick in den Programmsource auch keine Möglichkeit, das tatsächliche Problem zu identifizieren.
[ratings]