PyCharm und VLC-Player -> PulseAudio server connection failure: Connection refused

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo und schönen Sonntag,

    ich habe mal wieder ein Problem, da es aber nur entfernt etwas mit dem Raspberry zu tun hat, ich aber eure Hilfe schätze, entsteht das Thema hier im Offtopic-Bereich.

    Vor einigen Monaten habe ich mit eurer Hilfe ein kleines Internetradio-Programm in Python geschrieben. Für ein Projekt das auch ein Internetradio besitzen soll, wollte ich die Funktion aus diesem Code übernehmen. Um sicher zu sein, dass der Code, den ich übernehmen will, auch funktioniert habe ich ihn getestet. Dabei kam folgendes raus:

    *.py ausführbar gemacht und geöffnet, Radio funktioniert.

    *.py in Thonny geöffnet und ausgeführt, Radio funktioniert auch.

    *.py in PyCharm geöffnet und ausgeführt, Radio funktioniert nicht.

    Das Projekt, dass den Code vom Internetradio enthalten soll, möchte ich in PyCharm schreiben, da ich da eine virtuelle Entwicklungsumgebung habe und ich somit einfacher Module zum Projekt hinzufügen kann. Auch finde ich die Hilfen zur Codedarstellung sehr nützlich.

    Installiert habe ich im aktuellen PyCharm-Projekt diese Module:

    - Kivy

    -Kivy-Garden

    -Pygements

    -certifi

    -chardet

    -docutils

    -idna

    -pip

    -python-vlc

    -redcmd

    -redlib

    -requests

    -setuptools

    -six

    -urllib3

    -vlc-controller

    -vlc-ctrl

    -vlcplaylister

    -vlcradio

    -zope.interface

    Das Programm, das in Thonny und als ausführbare Datei funktioniert und nur in PyCharm nicht, sieht so aus:

    Starte ich es in PyCharm erhalte ich als erstes diese Fehlermeldungen:

    Code
    [000055df15c01a50] vlcpulse audio output error: PulseAudio server connection failure: Connection refused
    [000055df15ac4390] vlcpulse audio output error: PulseAudio server connection failure: Connection refused

    Das tkinter-GUI öffnet sich zwar, aber wenn ich einen Sender auswählen und auf Play klicke, bekomme ich weitere Fehlermeldungen:

    Code
    [00007fe6c8008ee0] prefetch stream error: unimplemented query (264) in control
    ALSA lib pulse.c:242:(pulse_connect) PulseAudio: Unable to connect: Connection refused
    
    [000055fee042f390] alsa audio output error: cannot open ALSA device "default": Connection refused
    [000055fee042f390] main audio output error: Audio output failed
    [000055fee042f390] main audio output error: The audio device "default" could not be used:
    Connection refused.
    [000055fee042f390] main audio output error: module not functional
    [00007fe6c8061a00] main decoder error: failed to create audio output

    Im Internet kommen einige Themen zu diesen Fehlern, aber die beziehen sich alle darauf, dass der Code auf dem System an sich nicht funktioniert. Das geht bei mir aber. Speziell zu der Entwicklungsumgebung in PyCharm konnte ich nichts finden.

    Ich benutze Python 3.9 und das läuft alles auf Fedora33.

    Noch als Zusatzinfo: Das ganze soll später eine Musik-Box werden, die unterschiedliche Internetradio-Sender abspielen kann, dann soll sie Musik die auf einer Cloud hinterlegt ist abspielen können und bei Bedarf soll sie nur als Verstärker für Bluetooth-Geräte dienen. Das soll dann ein Raspberry mit Touch-Display übernehmen (Deswegen auch kivy). Nur ist es für mich viel angenhemer das Projekt mit dem Laptop zu schreiben und Fehler zu beheben, deswegen PyCharm.

    Eventuell hatte von euch schon jemand das Problem oder kann mit dem Fehler mehr anfangen wie ich :denker:

    Vielen Dank und Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • PyCharm und VLC-Player -> PulseAudio server connection failure: Connection refused? Schau mal ob du hier fündig wirst!

  • Ein Kollege hatte ein sehr aehnliches Problem mit Visual Studio Code und unserem Emulator. Lief auch nicht mit PA. Dort hat sich schlussendlich herausgestellt, dass VS Code als flatpack oder snap oder so installiert war. Und das sorgt dafuer, dass die IDE in einer Art Sandbox gestartet wird. Dadurch hat sie nicht das Recht, auf PA zuzugreifen.

    Ich weiss natuerlich nicht (benutze kein PyCharm) ob das bei dir der Fall ist. Aber wenn, dann hilft ggf. https://docs.flatpak.org/en/latest/sandbox-permissions.html

  • Hallo __deets__ und vielen Dank für deine Antwort.

    Aus deinem Link:

    Zitat

    Most applications will need access to some of these resources in order to
    be useful. This is primarily done during the finishing build stage, which
    can be configured through the finish-args section of the manifest file
    (see Manifests).

    Verstehe ich das richtig, dass ich dann eine manifests-Datei erstellen muss? Dazu habe ich dieses Beispiel einer solchen Datei gefunden.

    Von flatpak.org/setup/Fedora habe ich die Information, dass 'flatpak' von Haus aus schon bei mir installiert ist.

    Wenn ich jetzt, aber für einen ungewissen Erfolg den ganzen Sonntag brauche um zu verstehen, wie so eine 'mainfests'-Datei erstellt wird, wäre ich auch für Programmvorschläge offen, die PyCharm ähnlich sind.

    Wenn ich zur Zeit nichts zu tun habe, kann ich mich zwischen Problemen mit 'kivy' oder Problemen mit dem ESP32 entscheiden, da muss nicht noch zwingend das 'mainfests' dazu kommen, sonst blicke ich nicht mehr durch. :X

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Ich habe selbst nicht versucht, diese Schritte nachzuvollziehen - ich arbeite immer in der normalen Shell zum ausfuehren von Programmen. Darum kann ich zur Komplexitaet, dieses Manifest zu erstellen, nichts sagen.

    llutz da er Audio bekommt, nur nicht unter bestimmten Umstaenden, wuerde ich mal ja sagen.

  • Nun, da sowohl Verbindung zu Pulse wie auch zu Alsa mit "connection refused" (aka "da lauscht nix") quittiert werden, frage ich lieber nach.

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • Hallo @Ilutz Danke für deine Antwort.

    Aber pulseaudio läuft?

    Ja, es läuft:

    ich arbeite immer in der normalen Shell zum ausfuehren von Programmen

    Erzeugst du dort dann eine virtuelle Entwicklungsumgebung und installierst die benötigten Module oder installierst du dir zum Beispiel kivy direkt auf das System, auch wenn du ein Programm schreibst, dass nachher gar nicht auf dem System laufen soll?

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Du meinst ein venv? Klar. Ich benutze zB pipenv. Und installiere, was notwendig ist. Es ist ueblicherweise ein Vorteil auf einem PC oder aehnlichem zu arbeiten, statt auf dem Zielsystem. Weil eben Dinge wie Debugging leichter sind. Da schneller. Ich arbeite allerdings eh nicht mit Pi OS und Konsorten, sondern baue meine OS immer mit YOCTO selbst. Da gibt's dann auch gar keinen Desktop, den man versucht sein koennte, zu benutzen.

  • Du meinst ein venv?

    Ja genau. Okay dann mache ich mich mal in die Richtung schlau, dann kann ich das Programm mit PyCharm schreiben und dann in der Shell testen.

    sondern baue meine OS immer mit YOCTO selbst

    Jetzt weiche ich stark vom Thema ab, aber nur interessehalber und mal ganz davon abgesehen das ich ziemlich sicher nicht über das WIssen verfüge das auch zu machen. Kann man damit ein OS bauen, dass dann beim hochfahren wirklich nur ein erstelltes GUI öffnet und wirklich alles was nicht benötigt wird weggelassen werden kann. Im Bezug auf das Internetradio wäre das dann ein OS, das nur Internet, Audioausgabe und die Displayaus- und Eingabe besitzt. Mal so ganz einfach gesagt.

    Danke und Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

  • Genau, das ist das Ziel. Ein sehr auf die Beduerfnisse angepasstes OS, mit wenigen Sekunden von Einschalten bis Nutzung der eigentlich gewuenschten Anwendung. Und natuerlich auch keinerlei "Verschwendung" von Resourcen an unnoetige Dinge. Man kann probieren, ein bestehendes System so weit einzudampfen, dass es das auch tut. Aber das ist erfahrungsgemaess zu schwer, weil zum einen die Entwicklung zB von Pi OS jedes Rezept, dass das versucht, immer wieder auf den Pruefstand stellt. Und zum anderen Dinge wie systemd (von dem ich auf Desktops ein Freund bin!) so viele Abhaengigkeiten und Erwartungen haben, dass man das kaum einsetzen kann. Pi OS basiert aber darauf.

  • Kurze Rückmeldung: Ich schreibe mein Programm weiterhin in PyCharm, die Tests führe ich dann in einer Shell aus. Dazu benutze ich jetzt auch 'pipenv'.

    Das Internetradio (Code siehe oben) funktionierte sofort ohne Probleme :thumbup:

    Das Radio mit der kivy-Oberfläche allerdings nicht, dazu wird es später wohl ein extra Thema geben. Normal freue ich mich wenn ich keine Fehlermeldungen erhalte, aber dieses Mal funktioniert es nicht und es gibt keine Fehlermeldungen, das ist ein bisschen doof :angel:

    Danke für eure Hilfe, ich bin zufrieden und kann so weiter arbeiten. :)

    Grüße

    Dennis

    🎧 With the music execution and the talk of revolution, it bleeds in me and it goes 🎧

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!