Ich habe ein Python-Skript geschrieben, um Gstreamer (pygst und gst-Module) zu verwenden, um Replaygain-Tags zu berechnen, und es stürzte inkonsistent mit verschiedenen Gobject-Fehlern ab. Ich fand irgendwo, dass Sie dies, indem Sie den folgenden Text am Anfang des Skripts beheben könnte:Warum stürzt python gstreamer ohne "gobject.threads_init()" am Anfang meines Skripts ab?
import gobject
gobject.threads_init()
Ich versuchte es, und es funktionierte. Kann jemand erklären, warum diese Zeilen notwendig sind, und warum pygst das nicht selbst tut?
Aber es scheint, dass das Python-Gstreamer-Modul versucht, Threading zu verwenden, egal was passiert, wie die Abstürze zeigen, die auftreten, wenn ich 'threads_init()' nicht aufruft. Wenn es also immer Threading verwendet, sollte es nicht immer initialisiert werden? –
Oder um es unverblümt zu sagen, warum schließt pygst diese Codezeile nicht ein, die benötigt wird, damit sie ohne Absturz funktioniert? –
Ich würde sagen, es ist nicht Pygsts Aufgabe, das zu tun, sondern die Anwendung. Wenn jede Bibliothek/Bindung dies tun würde, würde es jedes Mal erneut ausgeführt werden, wenn Sie eine laden. – XTL