Speicherzugriffsfehler bei Package mit Namen gtk

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
PythonÜbernehmenSie
User
Beiträge: 10
Registriert: Dienstag 14. Oktober 2008, 18:50

Hallo zusammen!

Um etwas in Python hereinzuschnuppern bin ich gerade dabei, ein graphisches Programm für GNU/Linux zu schreiben. Zum Erstellen von Benachrichtigungen für einen Benutzer soll u.a. libnotify und die entsprechende Python-Anbindung pynotify.

Ich hatte dann zu Testzwecken zwei identische Skripte, die nichts weiter tun, als eine Benachrichtigung anzuzeigen. Seltsamerweise verabschiedete sich bei einem davon der Interpreter mit einem Speicherzugriffsfehler. Ich fand heraus, dass bei diesem Skript ein Unterpackage namens "gtk" (ohne die Anführungszeichen, exakter Name in Kleinschreibweise) besteht, entferne ich dieses Package, verschwindet der Fehler!

Ist das nun ein Bug der Bibliothek, von Python selbst oder einfach eine Eigen- bzw. Abart von Python? Irgendeine Art von Fehler wird es sein, aber bei wem genau?

Falls es hilft, ich verwende Python 2.5.1 unter Linux und pynotify in der Version 0.1.1.

Vielen Dank schon einmal!
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Das dürfte ein Bug in PyGtk sein, im `init_pygtk`-Makro. Dort wird nämlich ``_PyGtk_API`` aus dem Modul-Dict des `gtk`-Moduls geholt. Da das aber nicht das "echte" `gtk`-Modul ist, existiert der Schlüssel nicht und `PyDict_GetItemString` gibt einen Nullzeiger zurück, der dann weiter verwendet wird (es wird `PyCObject_Check`damit aufgerufen, was dann zum Segfault führt).

Das beste wäre es wohl, das in den Bugtracker von PyGtk einzutragen.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Antworten