Aktuell: Bug in eyeD3 verhindert webradio-py-Startup

Du hast webradio-py installiert, dich genau nach Anleitung im Wiki gehalten, aber webradio will einfach nicht starten? Wenn du folgende Fragen alle mit “JA” beantworten kannst….

  1. Du hast beim Installationsvorgang die Frage nach “eyeD3” bzw. beinhalteten Album-Covern aus MP3 Dateien mit “Ja” beantwortet?
  2. Du hast die Installation von webradio-py später als Mitte Dezember 2019 durchgeführt?
  3. sudo pip show eyed3 ergibt unter Version: “0.9”

….hast du hiermit die Ursache gefunden.

Wenn du einen Blick in die Datei ~/webradio/webradio.log wirfst, findest du auch Einträge wie:

Traceback (most recent call last):
File "/opt/webradio/webradio.py", line 288, in
import eyed3
File "/usr/local/lib/python2.7/dist-packages/eyed3/__init__.py", line 30, in
from .utils.log import log # noqa: E402
File "/usr/local/lib/python2.7/dist-packages/eyed3/utils/__init__.py", line 361
msg = f"invalid level choice: {level} (choose from {parser.log_levels})"
^
SyntaxError: invalid syntax

Es handelt sich um einen kleinen Fehler mit großer Wirkung.

In der o.g. Library “eyeD3”, welche ich optional für den Export von eingebetteten Album-Covern aus MP3-Dateien verwende, hat sich ab der Version 0.9 (vielleicht auch schon in 0.8.12 ?) ein Tipp-Fehler in den Quellcode eingeschlichen, der den Import verhindert. Als erstes entdeckt hat den Bug Bruno, der auch gleich eine Übergangslösung mitbrachte… auf Brunos Hinweis hin, habe ich auch bereits einen Bug-Report an den Entwickler der betroffenen Bibliothek gesendet.

Wie kann ich den Fehler beheben?

Ich gehe zwar davon aus, dass der Fehler schnell durch ein Versionsupdate von eyeD3 behoben werden wird, allerdings ist dies für die bereits “fehlgeschlagene” Version nicht mehr unbedingt hilfreich, da die bereits installierte Version nicht automatisch aktualisiert werden wird. Daher hast du folgende 3 Möglichkeiten:

  1. Du wartest, bis der Bug behoben wurde und aktualisierst anschließend das installierte Paket mit sudo pip install --upgrade eyed3
  2. Du editierst die fehlerhafte Datei, wie von Bruno beschrieben.(siehe Update vom 07.01. weiter unten!)
  3. (Empfohlen) du machst einen manuellen “downgrade” auf eine funktionierende Version von eyed3 mit sudo pip install 'eyed3==0.8.11'  --force-reinstall

Anschließend sollte webradio-py wie erwartet starten.

Ich werde den Bug natürlich tracken und hier Bescheid geben, sobald der Fix verfügbar ist, bzw. die Installation wieder auf Anhieb funktionieren sollte.

Viel Spaß beim basteln!

Matthias

Update 07.01.2020:

Nach Rückmeldung des Entwicklers, handelt es sich um keinen “Fehler” sondern um ein Update der Library! Diese unterstützt ab der Version 0.9 nämlich leider nur noch Python3. Webradio-py basiert allerdings (noch) auf Python 2.7.

Ich habe die Installer (deb-Files) im Repository und in den Releases bereits entsprechend aktualisiert. Wenn man eines der hier verfügbaren deb-Pakete (0.3.9) installiert, wird automatisch eine eyeD3 Version installiert, die noch mit Python2.7 kompatibel ist (und wenn nötig ein downgrade durchgeführt)

Von der oben Beschriebenen “Änderung” einer bereits installierten eyeD3 Version (0.9) ist daher ab zu raten! Es kann nicht gewährleistet werden, dass die Bibliothek einwandfrei funktioniert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.