Unterstützung bei Mopidy Jellyfin Python Installation benötigt

Don-DCH

Captain
Registriert
Aug. 2009
Beiträge
3.241
Guten Mittag zusammen,

ich wollte heute einen zweiten Raspberry Pi als Musikempfänger für Jellyfin einrichten.
Dabei bin ich wie beim letzten mal auch nach dieser Anleitung vorgegangen:
https://jellyfin.org/docs/general/clients/mopidy/#raspberry-pi-remote-controlled-speakers

Bis Punkt 5 hat alles gut geklappt
Wenn ich aber sudo pip3 install mopidy-jellyfin mopidy-musicbox-webclient ausführe bekomme ich einen Fehler:

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

Nach etwas Recherche habe ich dann eine virtuelle Umgebung erstellt:

python3 -m venv /home/BENUTZER/venv-test

source /home/BENUTZER/venv-test/bin/activate

danach schien der command pip3 install mopidy-jellyfin mopidy-musicbox-webclient ohne sudo erfolgreich ausgeführt zu sein.
Zumindest Ordner wurden erstellt und innerhalb dessen auch ein Mopidy Jellyfin Ordner.

Jedoch habe ich dann die Konfiguration von Mopidy geprüft und bekomme den Fehler:
WARNING [MainThread] mopidy.config Ignoring config section 'jellyfin' because no matching extension was found

Also scheint es nicht richtig installiert zu sein :/
Es scheint mir, dass das Problem ist, dass die Extension in einer extra Umgebung installiert wird wo nicht zugegriffen werden kann.
Manche Empfehlen eine alte PIP Version zu installieren.

Entgegen der Empfehlung habe ich jetzt den Command mit --break-system-packages ausgeführt danach ging es.

sudo pip3 install --break-system-packages mopidy-jellyfin mopidy-musicbox-webclient

Nun ist die Frage ob da sgenerell so gut ist? Laut Recherche kann man so Systemdateien beschädigen und das System unsicherer machen. Aber was wäre die Alternative?
Komme ich irgendwie anders an die Installationsdateien der Jellyfin Extension ran durch eine Art App Store von Mopidy?
Das einzige was ich finden konnte war die gleiche Vorgehensweise mit pip
https://mopidy.com/ext/jellyfin/


Ich würde mich sehr über Vorschläge und Hilfe von euch freuen :)

Viele Grüße und ein schönes Wochenende wünsche ich euch :)
 
Hast du mopidy denn dann aus der aktivierten virtuellen Umgebungen gestartet?
Don-DCH schrieb:
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
Das probiert?
 
  • Gefällt mir
Reaktionen: Don-DCH
Bitopium schrieb:
Ich habe statt sudo pip3 install mopidy-jellyfin mopidy-musicbox-webclient
sudo apt install mopidy-jellyfin mopidy-musicbox-webclient
versucht, das hat leider nicht geklappt.

Unter https://mopidy.com/ext/jellyfin/ ist auch leider nur der pip3 Befehl



Bitopium schrieb:
Hast du mopidy denn dann aus der aktivierten virtuellen Umgebungen gestartet?
Ehrlich gesagt weiß ich nicht wie das geht, kannst du mir helfen?

Danke dir für die Ideen :)
 
Don-DCH schrieb:
Ehrlich gesagt weiß ich nicht wie das geht, kannst du mir helfen?

Das hast du ja eigentlich schon gemacht mit:
Don-DCH schrieb:
python3 -m venv /home/BENUTZER/venv-test

source /home/BENUTZER/venv-test/bin/activate

Sprich um deine virtuelle Umgebung zu aktivieren machst du in der aktuellen Shell ein:
source /home/BENUTZER/venv-test/bin/activate

Danach kannst du mopidy starten.

Es sei allerdings erwähnt dass es zwei Modi gibt das Teil zu starten. Wir verwenden hiermit die Methode Running in a Terminal. Für ein Produktivsystem nimmt man wohl eher einen systemd service sowie in deiner verlinkten Anleitung beschrieben weil es damit automatisch bei Systemstart mitgestartet wird:

sudo systemctl enable --now mopidy

Die Crux an der Sache ist jetzt dass der Service nicht in der virtuellen Umgebung läuft.
Da könnte man sich jetzt z.B. einen eigenen systemd service schreiben der die entsprechende Environment konfiguriert.

Don-DCH schrieb:
Nun ist die Frage ob da sgenerell so gut ist?
Es sollte in der Tat vermieden werden aber sehe ich in dem Fall jetzt nicht so schlimm, würde es damit also so belassen.

Möchtest du das Ganze reproduzierbar haben wäre Docker eine Alternative.
 
  • Gefällt mir
Reaktionen: Don-DCH
Vielen herzlichen Dank dir für die super schnelle und sehr ausführliche Antwort!
Ich habe in der Zwischenzeit Rasperry Pi OS nochmal frisch installiert um nochmal die Meldung zu sehen wenn man das ganze mit apt installiert:

sudo apt install python3-mopidy-jellyfin mopidy-musicbox-webclient
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
E: Paket python3-mopidy-jellyfin kann nicht gefunden werden.

Das ist wirklich schade, dass es nicht mit apt geht :/

Bitopium schrieb:
Sprich um deine virtuelle Umgebung zu aktivieren machst du in der aktuellen Shell ein:
source /home/BENUTZER/venv-test/bin/activate

Danach kannst du mopidy starten.
Oh, da habe ich zu kompliziert gedacht.

Bitopium schrieb:
sudo systemctl enable --now mopidy
Genau so habe ich das ganze immer gestartet und mit
sudo systemctl restart mopidy
ab und an mal neugestartet bei Änderungen der Config


Das heißt der Workaround ist statt Schritt 5 in der Anleitung führe ich diese Befehle aus?

python3 -m venv /home/BENUTZER/venv-test

source /home/BENUTZER/venv-test/bin/activate

pip3 install mopidy-jellyfin mopidy-musicbox-webclient

mopidy

und dadurch startet es? Das wäre ja so naheliegend :D
Ich muss es gleich mal testen :)

Bitopium schrieb:
Die Crux an der Sache ist jetzt dass der Service nicht in der virtuellen Umgebung läuft.
Da könnte man sich jetzt z.B. einen eigenen systemd service schreiben der die entsprechende Environment konfiguriert.
Verstehe, hmm ist es sehr kompliziert das zu schreiben bzw. alles zu konfigurieren?
Wäre schon toll, wenn es nach einem Neustart des Pis immer automatisch startet, kann man da irgendwas tricksen :D ?

Bitopium schrieb:
Es sollte in der Tat vermieden werden aber sehe ich in dem Fall jetzt nicht so schlimm, würde es damit also so belassen.
Hmm, ja ich bin da absoluter Linux und erst recht python laie, nach Recherche dachte ich auch ich lasse es lieber, wollte das System nicht unsicherer oder instabiler machen. Aber der Pi soll nur dafür sein.

Bitopium schrieb:
Möchtest du das Ganze reproduzierbar haben wäre Docker eine Alternative.
Wie meinst du das genau?
Hätte ich mit Docker dann noch zugriff auf die Audio Ausgabe am Raspberry Pi?

Viele Grüße und vielen herzlichen Dank dir, ich werde mich gleich nochmal melden wenn ich das ausprobiert habe :)



EDIT:

Leider leider hat es nicht geklappt :(

Anbei die Ausgabe nach eingabe des Befehls mopidy innerhalb der virtuellen Python Umgebung


"


mopidy

ERROR: A GObject based library was not found.

Mopidy requires GStreamer to work. GStreamer is a C library with a
number of dependencies itself, and cannot be installed with the regular
Python tools like pip.

Please see https://docs.mopidy.com/en/latest/installation/ for
instructions on how to install the required dependencies.

Traceback (most recent call last):
File "/home/BENUTZER/mopidy-py/bin/mopidy", line 5, in <module>
from mopidy.main import main
File "/home/BENUTZER/mopidy-py/lib/python3.11/site-packages/mopidy/main.py", line 7, in <module>
from mopidy import commands
File "/home/BENUTZER/mopidy-py/lib/python3.11/site-packages/mopidy/commands.py", line 18, in <module>
from mopidy.audio import Audio
File "/home/BENUTZER/mopidy-py/lib/python3.11/site-packages/mopidy/audio/init.py", line 2, in <module>
from .actor import Audio
File "/home/BENUTZER/mopidy-py/lib/python3.11/site-packages/mopidy/audio/actor.py", line 8, in <module>
from mopidy.audio import tags as tags_lib
File "/home/BENUTZER/mopidy-py/lib/python3.11/site-packages/mopidy/audio/tags.py", line 7, in <module>
from mopidy.internal.gi import GLib, Gst
File "/home/BENUTZER/mopidy-py/lib/python3.11/site-packages/mopidy/internal/gi.py", line 5, in <module>
import gi
ModuleNotFoundError: No module named 'gi'


"


Der Gstreamer wird über apt installiert in Schritt 4 wenn ich das richtig sehe?
Anscheind hat er da Probleme das ganze zu finden
 
Zuletzt bearbeitet:
Okay da scheint das Teil auch global Python Pakete zu installieren. Sorry ich kenn das Teil selbst nicht aber dafür Python ziemlich gut.

Was du probieren kannst: Die venv mit der Option --system-site-packages mitgeben bei der Erstellung:
Bash:
python3 -m venv --system-site-packages  <Pfad zum venv Ordner>

Sorry ich kann das aktuell nicht ausprobieren da ich nur mobil unterwegs bin.

Ansonsten kann ich das mal daheim mit einem pi probieren
Ergänzung ()

Don-DCH schrieb:
hmm ist es sehr kompliziert das zu schreiben bzw. alles zu konfigurieren?
Nicht wirklich schwer. Wenn ich heute Abend Zeit habe kann ich dir vllt einen Service zeigen oder das erstmal selbst ausprobieren
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Don-DCH und s1ave77
Guten Morgen und vielen herzlichen Dank dir für deine wirklich klasse Hilfe!

Ich habe gestern spät Abend nochmal was versucht und zwar habe ich Rasperry Pi Legacy genommen die Bullseye version die ich auf meinem anderen Pi damals damit eingerichtet habe. Damit konnte ich pip3 nach Anleitung ausführen und alles normal installieren. Also ist es eine Änderung von dem neuen Betriebssystem oder, das da irgendwas geändert wurde mit python?

Bullseye wird ja noch supportet, auch wenn es natürlich shcöner wäre gleich auf Bookworm zu setzen.
Dann mach ich mich mal dran den Pi nochmal platt zu machen :D :D

Ich danke dir für deine Hilfestellung und werde gleich mal versuchen das mitzugeben.
So würden dann die CMDlets ausschauen gell?

python3 -m venv --system-site-packages /home/BENUTZER/venv-test

source /home/BENUTZER/venv-test/bin/activate

pip3 install mopidy-jellyfin mopidy-musicbox-webclient

mopidy

Wenn du magst kannst du es gerne ausprobieren, aber wirklich nur wenn du Zeit dafür hast.

Vielen herzlichen Dank dir nochmal für deine Zeit und Mühe :)

Einen schönen Tag wünsche ich dir :)
 
Don-DCH schrieb:
Änderung von dem neuen Betriebssystem oder, das da irgendwas geändert wurde mit python?
Korrekt. Das ist bei vielen neuen Versionen von Distributionen bzw deren pip Version so. Warum das so ist führt hier glaube ich zu weit aber im Prinzip das was in der Fehlermeldung steht.

Du kannst auch bookworm nehmen und die Option --break-system-packages wie schon von dir im ersten Post geschrieben, kommt aufs gleiche raus.

Don-DCH schrieb:
So würden dann die CMDlets ausschauen gell?
Ja aber die venv davor löschen falls sie schon existiert
 
  • Gefällt mir
Reaktionen: Don-DCH
Ich habe gerade nochmal alles neu installiert und wie oben ausgeführt.
Die gute Nachricht eine Fehlermeldung gab es nicht!
Leider aber kann ich den Pi nicht als Wiedergabeziel in Jellyfin auswählen.
Anbei die CMDlets mit Ausgabe

pip3 install mopidy-jellyfin mopidy-musicbox-webclient
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting mopidy-jellyfin
Downloading https://www.piwheels.org/simple/mopidy-jellyfin/Mopidy_Jellyfin-1.0.4-py2.py3-none-any.whl (26 kB)
Collecting mopidy-musicbox-webclient
Downloading https://www.piwheels.org/simple/mop...idy_MusicBox_Webclient-3.1.0-py3-none-any.whl (1.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 6.2 MB/s eta 0:00:00
Requirement already satisfied: setuptools in ./venv-test/lib/python3.11/site-packages (from mopidy-jellyfin) (66.1.1)
Requirement already satisfied: Mopidy>=2.0 in /usr/lib/python3/dist-packages (from mopidy-jellyfin) (3.4.2)
Requirement already satisfied: Pykka>=1.1 in /usr/lib/python3/dist-packages (from mopidy-jellyfin) (3.1.1)
Requirement already satisfied: requests>=2.20 in /usr/lib/python3/dist-packages (from mopidy-jellyfin) (2.28.1)
Collecting unidecode>=1.1
Downloading https://www.piwheels.org/simple/unidecode/Unidecode-1.3.8-py3-none-any.whl (235 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 235.5/235.5 kB 5.8 MB/s eta 0:00:00
Collecting websocket-client>=0.57
Downloading https://www.piwheels.org/simple/websocket-client/websocket_client-1.7.0-py3-none-any.whl (58 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.5/58.5 kB 2.4 MB/s eta 0:00:00
Installing collected packages: websocket-client, unidecode, mopidy-musicbox-webclient, mopidy-jellyfin
Successfully installed mopidy-jellyfin-1.0.4 mopidy-musicbox-webclient-3.1.0 unidecode-1.3.8 websocket-client-1.7.0


nach dem start von mopidy über mopidy bleibt er an einer stelle ewig hängen er hat dann abgebrochen da ich mit STRG+C die Ausgabe kopiert habe:

mopidy
INFO 2024-03-03 11:58:49,071 [2875:MainThread] mopidy.main
Starting Mopidy 3.4.2
INFO 2024-03-03 11:58:49,131 [2875:MainThread] mopidy.config
Loading config from builtin defaults
INFO 2024-03-03 11:58:49,134 [2875:MainThread] mopidy.config
Loading config from command line options
INFO 2024-03-03 11:58:49,142 [2875:MainThread] mopidy.internal.path
Creating dir file:///home/BENUTZER/.cache/mopidy
INFO 2024-03-03 11:58:49,143 [2875:MainThread] mopidy.internal.path
Creating dir file:///home/BENUTZER/.config/mopidy
INFO 2024-03-03 11:58:49,143 [2875:MainThread] mopidy.internal.path
Creating dir file:///home/BENUTZER/.local/share/mopidy
INFO 2024-03-03 11:58:49,145 [2875:MainThread] mopidy.config
Loading config from builtin defaults
INFO 2024-03-03 11:58:49,147 [2875:MainThread] mopidy.config
Loading config from command line options
INFO 2024-03-03 11:58:49,154 [2875:MainThread] mopidy.internal.path
Creating file file:///home/BENUTZER/.config/mopidy/mopidy.conf
INFO 2024-03-03 11:58:49,155 [2875:MainThread] mopidy.main
Initialized file:///home/BENUTZER/.config/mopidy/mopidy.conf with default config
INFO 2024-03-03 11:58:49,434 [2875:MainThread] mopidy.main
Enabled extensions: http, softwaremixer, stream, mpd, file, m3u
INFO 2024-03-03 11:58:49,434 [2875:MainThread] mopidy.main
Disabled extensions: none
INFO 2024-03-03 11:58:49,835 [2875:MainThread] mopidy.commands
Starting Mopidy mixer: SoftwareMixer
INFO 2024-03-03 11:58:49,838 [2875:MainThread] mopidy.commands
Starting Mopidy audio
INFO 2024-03-03 11:58:49,841 [2875:MainThread] mopidy.commands
Starting Mopidy backends: FileBackend, M3UBackend, StreamBackend
INFO 2024-03-03 11:58:49,851 [2875:MainThread] mopidy.internal.path
Creating dir file:///home/BENUTZER/.local/share/mopidy/m3u
INFO 2024-03-03 11:58:49,862 [2875:Audio-2 (_actor_loop)] mopidy.audio.actor
Audio output set to "autoaudiosink"
INFO 2024-03-03 11:58:49,876 [2875:MainThread] mopidy.commands
Starting Mopidy core
INFO 2024-03-03 11:58:49,886 [2875:MainThread] mopidy.commands
Starting Mopidy frontends: HttpFrontend, MpdFrontend
INFO 2024-03-03 11:58:49,888 [2875:HttpFrontend-8 (_actor_loop)] mopidy.http.actor
HTTP server running at [::ffff:127.0.0.1]:6680
INFO 2024-03-03 11:58:49,890 [2875:MainThread] mopidy_mpd.actor
MPD server running at [::ffff:127.0.0.1]:6600
INFO 2024-03-03 11:58:49,893 [2875:MainThread] mopidy.commands
Starting GLib mainloop
INFO 2024-03-03 11:58:49,895 [2875:HttpServer] mopidy.internal.path
Creating dir file:///home/BENUTZER/.local/share/mopidy/http
^CINFO 2024-03-03 12:00:06,736 [2875:MainThread] mopidy.commands
Interrupted. Exiting...
INFO 2024-03-03 12:00:06,738 [2875:MainThread] mopidy.commands
Stopping Mopidy frontends
INFO 2024-03-03 12:00:06,780 [2875:MainThread] mopidy.commands
Stopping Mopidy core
INFO 2024-03-03 12:00:06,783 [2875:MainThread] mopidy.commands
Stopping Mopidy backends
INFO 2024-03-03 12:00:06,787 [2875:MainThread] mopidy.commands
Stopping Mopidy audio
INFO 2024-03-03 12:00:06,791 [2875:MainThread] mopidy.commands
Stopping Mopidy mixer


Leider bekomme ich den Pi nicht als Wiedergabeziel in Jellyfin angezeigt :(

Testweise habe ich auch
sudo systemctl restart mopidy ausgeführt da kam auch keine Fehlermeldung aber auch kein Erfolg :/

Bitopium schrieb:
Korrekt. Das ist bei vielen neuen Versionen von Distributionen bzw deren pip Version so.
Ah ok, gut zu wissen. :)

Bitopium schrieb:
Du kannst auch bookworm nehmen und die Option --break-system-packages wie schon von dir im ersten Post geschrieben, kommt aufs gleiche raus.
Machen die Befehle das gleiche?
Oder ist es mit deinem Vorschlag wie unter Bullseye so wie es sein sollte und alles sicher und mit --break-system-packes findet ein Eingriff statt?

Sprich das Ergebnis ist ähnlich aber sicherer ist es mit dem
vom dir genannten befehl
--system-site-packages

Bitopium schrieb:
Ja aber die venv davor löschen falls sie schon existiert
War alles weg durch die Neuinstallation.

Hmm komisch mit --break-system-packages hatte es mit einigen Meldungen dann funktioniert bei --system-site-packages ist alles super durchgelaufen soweit ich als Laie das beurteilen kann aber leider funktioniert es nicht richtig :(
Hast du noch eine Idee, damit ich das sauber hinbekommen kann?

Viele Grüße

EDIT:

Kleine Ergänzung, wenn ich mopidy startet geht er nicht weiter als
Starting GLib mainloop
 
Zuletzt bearbeitet:
Naja es ist schon klar dass der Befehl nie endet weil das ja ein Service ist der immer weiter laufen muss 😄. Du kannst ihn aber im Hintergrund der aktuellen Shell starten mit:
Bash:
mopidy & disown

Bin bissl kurz angebunden aber kann heute Abend etwas ausführlicher antworten
Ergänzung ()

Don-DCH schrieb:
Leider bekomme ich den Pi nicht als Wiedergabeziel in Jellyfin angezei
Auch nicht wenn du es laufen lässt?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Don-DCH
Bitopium schrieb:
Guter Tipp, danke dir :)

Bitopium schrieb:
Auch nicht wenn du es laufen lässt?
Leider nicht :(


Bitopium schrieb:
Hmm, er bleibt leider an der selben stelle mit Starting GLib mainloop stehen.

Ich habe mal geprüft ob er die Erweiterung Jellyfin einliest, leider macht er das nicht

sudo mopidyctl config
Running "/usr/bin/mopidy --config /usr/share/mopidy/conf.d:/etc/mopidy/mopidy.conf config" as user mopidy
WARNING [MainThread] mopidy.config Ignoring config section 'jellyfin' because no matching extension was found
 
Don-DCH schrieb:
Hmm, er bleibt leider an der selben stelle mit Starting GLib mainloop stehen.
Nochmal: Das ist völlig okay so. Er soll beim mainloop "stehen" bleiben. Er wartet damit dann auf eingehende Verbindungen.


Don-DCH schrieb:
sudo mopidyctl config
Running "/usr/bin/mopidy --config /usr/share/mopidy/conf.d:/etc/mopidy/mopidy.conf config" as user mopidy
WARNING [MainThread] mopidy.config Ignoring config section 'jellyfin' because no matching extension was found
Logisch weil sich die venv Umgebung nicht nach sudo "überträgt", somit würde ich sagen: sollte passen.

Bei mir läuft das Teil aber ich weiß nicht wie ich teste ob es das tut was es soll.

Erreichbar ist der server schon mal:


Code:
curl -vvv http://localhost:6680
*   Trying ::1:6680...
* connect to ::1 port 6680 failed: Connection refused
*   Trying 127.0.0.1:6680...
* Connected to localhost (127.0.0.1) port 6680 (#0)
> GET / HTTP/1.1
> Host: localhost:6680
> User-Agent: curl/7.74.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 302 Found
< Server: TornadoServer/6.1
< Content-Type: text/html; charset=UTF-8
< Date: Sun, 03 Mar 2024 19:37:41 GMT
< Location: /mopidy/
< Content-Length: 0
<
* Connection #0 to host localhost left intact
 
Vielen Dank dir für die ausführliche Rückmeldung und das Testen.

Hast du zufällig Docker am laufen?
Ich kenne mcih in der Linux Welt nicht so aus und habe einm Synology NAS auf dem das ganze Läuft, da gibt es zwei Anleitungen:
https://mariushosting.com/how-to-install-jellyfin-on-your-synology-nas/
https://mariushosting.com/how-to-install-jellyfin-with-hardware-transcoding-on-your-synology-nas/

Ansonsten gibt es von Jellyfin auch noch eine Anleitung
https://jellyfin.org/docs/general/installation/container/


Dann könntest, nur falls du lust und Zeit hast damit das ganze nachstellen und mit Docker den Jellyfin Server installieren, denn der Sinn hinter dem ganzen ist, dass man auf dem Jellyfin Server die Musik auf dem Raspberry als Ziel wiedergeben kann.
Es erscheint dann der Raspberry beim Klick oben rechts auf "Auf Gerät Wiedergeben" (2 Symbol von Links, direkt neben der Lupe) als WIedergabe Ziel, wo sonst nru ein Gerät angezeigt wird.

Standardmäßig ist da nur der eigene PC, durch die Mopidy Installation kann man so die Musik an den Raspberry Pi Streamen lassen :)

Don-DCH schrieb:
Machen die Befehle das gleiche?
Oder ist es mit deinem Vorschlag wie unter Bullseye so wie es sein sollte und alles sicher und mit --break-system-packes findet ein Eingriff statt?

Sprich das Ergebnis ist ähnlich aber sicherer ist es mit dem
vom dir genannten befehl
--system-site-packages
Könntest du mir hier gerade nochmal sagen wie das mit der Sicherheit ausschaut? Weil du geschrieben hast, das die Befehle im Prinzip das gleiche machen.

Viele Grüße
 
Wobei, scheint bei mir auch nicht zu klappen, es kommt bei mir auch ohne sudo die Meldung bei "mopidy config". Hm, dann bin ich leider erstmal raus. Ich würde dann vermutlich an deiner Stelle in den sauren Apfel beißen und --break-system-packages auf dem latest bookworm nutzen.


Don-DCH schrieb:
Könntest du mir hier gerade nochmal sagen wie das mit der Sicherheit ausschaut?
Also bei älteren Distributionen vom Pi konnte man sich mit globalen Pip Installation auch schon Systempakete zerschießen wenn es blöd läuft und deswegen wurde die Änderung so eingebaut vermute ich dass per Default das verhindert wird bzw. darauf hingewiesen wird und man das explizit per flag anschalten muss.

Sprich, davor war das Verhalten --break-system-packages standardmäßig aktiv meines Wissens. Ob du jetzt also bullseye ohne der Flag benutzt (die es da noch gar nicht gab) oder bookworm mit der Flag, kommt aufs Gleiche raus.
Ergänzung ()

Vllt ist das auch per Design dass system weit installierte Pakete (mopidy) keine aus der aktivierten venv importieren können. Ist auch etwas seltsam wenn man sich das überlegt, da sind die Abhängigkeiten irgendwie falsch rum. Den Fall hatte ich eigentlich auch noch nie.

In sofern: flag benutzen und gut ist
Ergänzung ()

Wobei: Ich lese gerade dass sich das Teil natürlich auch einfach über pypi und damit in der venv installieren lässt: https://docs.mopidy.com/stable/installation/pypi/ Das probiere ich jetzt noch und wäre irgendwie naheliegend
Ergänzung ()

Also, frischer PI:
Bash:
sudo apt install build-essential python3-dev python3-pip
sudo apt install \
    python3-gst-1.0 \
    gir1.2-gstreamer-1.0 \
    gir1.2-gst-plugins-base-1.0 \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-ugly \
    gstreamer1.0-tools

python -m venv mopidy-venv
. mopidy-venv/bin/activate
pip install mopidy mopidy-mpd mopidy-jellyfin mopidy-musicbox-webclient PyGObject
# config .config/mopidy/mopidy.conf anpassen
mopidy config
mopidy
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Don-DCH
Vielen vielen herzlichen Dank dir für dein Engagement!

jetzt muss ich nochmal fragen was alles ersetzt dein Code?
Ich installiere Mopidy wie hier beschrieben bis einschließlich Schritt 3:
https://docs.mopidy.com/latest/installation/debian/#install-from-apt-mopidy-com

Und wenn ich es richtig sehe führe ich dann deinen Code aus und führe nicht Schritt 4-7 auf der Jellyfin Seite aus:
https://jellyfin.org/docs/general/clients/mopidy/#raspberry-pi-remote-controlled-speakers

Sehe ich das so richtig?

Viele Grüße

EDIT:

Da ich ungeduldig war und eine neu installation nicht so das Problem ist habe ich es einfach mal wie ich oben geschrieben habe ausprobiert.
Ich glaube aber ich hätte mopidy nicht installieren sollen, da das ja mit pip passiert ist das richtig?

Anbei die Ausgabe:

"


pip install mopidy mopidy-mpd mopidy-jellyfin mopidy-musicbox-webclient PyGObject
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting mopidy
Downloading https://www.piwheels.org/simple/mopidy/Mopidy-3.4.2-py3-none-any.whl (128 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.9/128.9 kB 1.8 MB/s eta 0:00:00
Collecting mopidy-mpd
Downloading https://www.piwheels.org/simple/mopidy-mpd/Mopidy_MPD-3.3.0-py3-none-any.whl (51 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 51.4/51.4 kB 124.2 kB/s eta 0:00:00
Collecting mopidy-jellyfin
Downloading https://www.piwheels.org/simple/mopidy-jellyfin/Mopidy_Jellyfin-1.0.4-py2.py3-none-any.whl (26 kB)
Collecting mopidy-musicbox-webclient
Downloading https://www.piwheels.org/simple/mop...idy_MusicBox_Webclient-3.1.0-py3-none-any.whl (1.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 2.7 MB/s eta 0:00:00
Collecting PyGObject
Downloading PyGObject-3.46.0.tar.gz (723 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 723.4/723.4 kB 4.0 MB/s eta 0:00:00
Installing build dependencies ... error
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> [47 lines of output]
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple, https://www.piwheels.org/simple
Collecting setuptools
Downloading https://www.piwheels.org/simple/setuptools/setuptools-69.1.1-py3-none-any.whl (819 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 819.3/819.3 kB 2.3 MB/s eta 0:00:00
Collecting wheel
Downloading https://www.piwheels.org/simple/wheel/wheel-0.42.0-py3-none-any.whl (65 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.4/65.4 kB 2.4 MB/s eta 0:00:00
Collecting pycairo
Downloading pycairo-1.26.0.tar.gz (346 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 346.9/346.9 kB 3.4 MB/s eta 0:00:00
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Installing backend dependencies: started
Installing backend dependencies: finished with status 'done'
Preparing metadata (pyproject.toml): started
Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: pycairo
Building wheel for pycairo (pyproject.toml): started
Building wheel for pycairo (pyproject.toml): finished with status 'error'
error: subprocess-exited-with-error

× Building wheel for pycairo (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-aarch64-cpython-311
creating build/lib.linux-aarch64-cpython-311/cairo
copying cairo/init.py -> build/lib.linux-aarch64-cpython-311/cairo
copying cairo/init.pyi -> build/lib.linux-aarch64-cpython-311/cairo
copying cairo/py.typed -> build/lib.linux-aarch64-cpython-311/cairo
running build_ext
Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc'
to the PKG_CONFIG_PATH environment variable
Package 'cairo', required by 'virtual:world', not found
Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.15.10']' returned non-zero exit status 1.
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pycairo
Failed to build pycairo
ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.


"

Die Config habe ich immer über
sudo nano /etc/mopidy/mopidy.conf
gemacht, geht das weiterhin?

Weil ich muss da den Textblock einfügen für die Verbindung mit Jellyfin
Mit mopidy config kann ich lediglich prüfen ob die Verbindung erfolgreich hergestellt wurde



EDIT2:

Jetzt habe ich den Pi nochmal frishc installiert und geupdatet und nur deine Befehle ausgeführt, leider kommen, wenn ich das richtig sehe die gleichen Fehler :(
Anbei nochmal die Ausgabe:




"

pip install mopidy mopidy-mpd mopidy-jellyfin mopidy-musicbox-webclient PyGObject
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting mopidy
Downloading https://www.piwheels.org/simple/mopidy/Mopidy-3.4.2-py3-none-any.whl (128 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 128.9/128.9 kB 1.4 MB/s eta 0:00:00
Collecting mopidy-mpd
Downloading https://www.piwheels.org/simple/mopidy-mpd/Mopidy_MPD-3.3.0-py3-none-any.whl (51 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 51.4/51.4 kB 2.0 MB/s eta 0:00:00
Collecting mopidy-jellyfin
Downloading https://www.piwheels.org/simple/mopidy-jellyfin/Mopidy_Jellyfin-1.0.4-py2.py3-none-any.whl (26 kB)
Collecting mopidy-musicbox-webclient
Downloading https://www.piwheels.org/simple/mop...idy_MusicBox_Webclient-3.1.0-py3-none-any.whl (1.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 3.1 MB/s eta 0:00:00
Collecting PyGObject
Downloading PyGObject-3.46.0.tar.gz (723 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 723.4/723.4 kB 226.1 kB/s eta 0:00:00
Installing build dependencies ... error
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> [47 lines of output]
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple, https://www.piwheels.org/simple
Collecting setuptools
Downloading https://www.piwheels.org/simple/setuptools/setuptools-69.1.1-py3-none-any.whl (819 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 819.3/819.3 kB 2.9 MB/s eta 0:00:00
Collecting wheel
Downloading https://www.piwheels.org/simple/wheel/wheel-0.42.0-py3-none-any.whl (65 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.4/65.4 kB 2.2 MB/s eta 0:00:00
Collecting pycairo
Downloading pycairo-1.26.0.tar.gz (346 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 346.9/346.9 kB 3.4 MB/s eta 0:00:00
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Installing backend dependencies: started
Installing backend dependencies: finished with status 'done'
Preparing metadata (pyproject.toml): started
Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: pycairo
Building wheel for pycairo (pyproject.toml): started
Building wheel for pycairo (pyproject.toml): finished with status 'error'
error: subprocess-exited-with-error

× Building wheel for pycairo (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [15 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-aarch64-cpython-311
creating build/lib.linux-aarch64-cpython-311/cairo
copying cairo/init.py -> build/lib.linux-aarch64-cpython-311/cairo
copying cairo/init.pyi -> build/lib.linux-aarch64-cpython-311/cairo
copying cairo/py.typed -> build/lib.linux-aarch64-cpython-311/cairo
running build_ext
Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc'
to the PKG_CONFIG_PATH environment variable
Package 'cairo', required by 'virtual:world', not found
Command '['pkg-config', '--print-errors', '--exists', 'cairo >= 1.15.10']' returned non-zero exit status 1.
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pycairo
Failed to build pycairo
ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.


"


Wenn ich die Config anpassen will kommt immer das er die datei mopidy.conf nicht findet. Sowohl innerhalb der venv als auch außerhalb
Egal ob mit oder ohne sudo
sudo nano /etc/mopidy/mopidy.conf
 
Zuletzt bearbeitet:
Don-DCH schrieb:
jetzt muss ich nochmal fragen was alles ersetzt dein Code?
Alles. Du installierst mopidy nicht mehr über apt.
Don-DCH schrieb:
Ich glaube aber ich hätte mopidy nicht installieren sollen, da das ja mit pip passiert ist das richtig?
Richtig.
Don-DCH schrieb:
sudo nano /etc/mopidy/mopidy.conf
Naja wenn du mopidy aus dem Terminal startest dann läuft der Prozess mit dem aktuellen User und dann wird eben in .config nach der config gesucht und du brauchst keine sudo Rechte mehr zum bearbeiten.

Die apt installs hast du aber schon davor gemacht? Fehler sind seltsam, bei mir ging das ohne Probleme, allerdings auf einem pi3 mit bullseye. Vielleicht fehlt libcairo2-dev?
 
Bitopium schrieb:
Alles. Du installierst mopidy nicht mehr über apt.
Ok, dann habe ich es bei meinem zweiten Anlauf richtig gemacht :)

Bitopium schrieb:
Naja wenn du mopidy aus dem Terminal startest dann läuft der Prozess mit dem aktuellen User und dann wird eben in .config nach der config gesucht und du brauchst keine sudo Rechte mehr zum bearbeiten.
Hmm ohne sudo hatte er auch keine Datei gefunden meine ich, kann das ganze aber nochmal testen.

Bis auf Zeile 2-8 habe ich alles Zeile für Zeile ausgeführt.
Bitopium schrieb:
Die apt installs hast du aber schon davor gemacht?
Die die du geschrieben hast auf jeden Fall ja.

Bitopium schrieb:
Fehler sind seltsam, bei mir ging das ohne Probleme, allerdings auf einem pi3 mit bullseye
Ah ok, hier ist der Unterschied ich habe wieder Bookworm auf nem Pi 4 verwendet.
Unter Bullseye hatte auch die Anleitung von Jellyfin noch funktioniert.

Bitopium schrieb:
Vielleicht fehlt libcairo2-dev?
Hmm wie kann ich das prüfen? Sagt mir als Laie erstmal garnichts sorry.
Wenn du noch andere Infos außer den Output oben brauchst sagt gerne bescheid :)
Leider bin ich mit der Fehlersuche durch fehlendes Wissen überfragt.
 
Gerade auf bookworm ausprobiert und kann deinen Fehler reproduzieren. Da fehlt in der Tat libcairo2-dev.
Außerdem fehlt noch libgirepository1.0-dev.

Also ergänzt:
Bash:
sudo apt install build-essential python3-dev python3-pip
sudo apt install \
    python3-gst-1.0 \
    gir1.2-gstreamer-1.0 \
    gir1.2-gst-plugins-base-1.0 \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-ugly \
    gstreamer1.0-tools \
    libcairo2-dev \
    libgirepository1.0-dev

python -m venv mopidy-venv
. mopidy-venv/bin/activate
pip install mopidy mopidy-mpd mopidy-jellyfin mopidy-musicbox-webclient PyGObject
# config .config/mopidy/mopidy.conf anpassen
mopidy config
mopidy

Das config file existiert bei mir:

/home/USERNAME/.config/mopidy/mopidy.conf
 
Zuletzt bearbeitet:
Guten Abend und nochmals, auch auf die Gefahr hin, dass ich mich wiederhole, vielen herzlichen Dank dir für deine Mühen!

Wahnsinn, dass du das alles so aus den LOGs ziehen kannst oder direkt weißt, großen Respekt.
Mir sagt das alles garnichts.

Ich habe jetzt nochmal ein frisches Raspberry Pi mit Bookworm aufgesetzt, bekomme aber leoder eine Fehlermeldung, erst dachte ich es liegt daran, dass zwischen libcairo2-devund dem \ zwei Leerzeichen sind, aber als ich eines entfernt habe kam der gleiche Fehler wieder :(
Irgendwas scheine ich falsch zu machen.
Anbei die Ausgabe:

"

sudo apt install \
python3-gst-1.0 \
gir1.2-gstreamer-1.0 \
gir1.2-gst-plugins-base-1.0 \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-ugly \
gstreamer1.0-tools \
libcairo2-dev \
libgirepository1.0-dev
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
E: Paket kann nicht gefunden werden.
-bash: libgirepository1.0-dev: Kommando nicht gefunden.

"


Ich habe jetzt mal folgendes versucht:
sudo apt install \
python3-gst-1.0 \
gir1.2-gstreamer-1.0 \
gir1.2-gst-plugins-base-1.0 \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-ugly \
gstreamer1.0-tools \
libcairo2-dev

Das ist ohne Fehler durchgelaufen, irgendwie hat er mit dem letzten Befehl ein Problem

Jetzt habe ich sudo apt install libgirepository1.0-dev einzeln eingegeben und es ging.
Ich glaub ich habe den Fehler gefunden.
Ich glaube dem Terminal passt das Leerzeichen hinter dem \ nicht
libcairo2-dev \

Lief jetzt alles durch :)

Jedoch finde ich die mopidy.conf einfach nicht

Bitopium schrieb:
Das config file existiert bei mir:

/home/USERNAME/.config/mopidy/mopidy.conf

Habe auch über den Dateibrowser gesucht unter /home/USERNAME/mopidy-venv
Müsste da nicht die config datei liegen?
Habe sämtliche Unterordner durchforstet finde die datei nicht.

Auch über die globale Suche nicht hmm
Muss ich mopidy erst einmal ausgeführt haben nee oder?
 
  • Gefällt mir
Reaktionen: Bitopium
Don-DCH schrieb:
Muss ich mopidy erst einmal ausgeführt haben nee oder
Kann sein. Mach mal ein einmaliges
Bash:
mopidy config
Ergänzung ()

Don-DCH schrieb:
Wahnsinn, dass du das alles so aus den LOGs ziehen kannst oder direkt weißt, großen Respekt.
Irgendwann bekommt man ein Auge dafür was bei so Fehlermeldungen wichtig ist und was es bedeutet ;)
Ergänzung ()

Don-DCH schrieb:
Ich glaub ich habe den Fehler gefunden.
Das war dann mein Fehler, sorry
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Don-DCH
Zurück
Oben