Tkinter aus ssh starten

Fragen zu Tkinter.
Antworten
tsaG
User
Beiträge: 14
Registriert: Samstag 22. August 2015, 00:20

Hi!

Ich habe auf meinem Raspberry Pi ein externes Display angeschlossen, über SPI. Dieses wird über den Framebuffer angesprochen, ansonsten läuf der Pi Headless.
Nun würde ich gerne darauf meine Tkinter Anwendung starten. Leider funktioniert dies noch nicht...

Ich bekomme den folgenden Fehler

Code: Alles auswählen

  File "PiCas2.py", line 7, in <module>
    top = Tkinter.Tk()
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1712, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
Ich habe in meinen Code bereits

Code: Alles auswählen

os.environ["SDL_FBDEV"] = "/dev/fb1"
eingefügt, jedoch tritt der fehler trotzdem noch auf :(
BlackJack

@tsaG: Tk braucht einen X-Server. Umgebungsvariablen für die Simple Directmedia Layer (SDL) Bibliothek sind Tk egal.
tsaG
User
Beiträge: 14
Registriert: Samstag 22. August 2015, 00:20

Auf meinem kleinen Display läuft ja ein X-Server (mit FRAMEBUFFER=/dev/fb1 startx
gestartet) . Ist es ansonsten möglich das ich in dem Python script X starte und dann tkinter starte?
BlackJack

@tsaG: Also wenn der X-Server läuft dann schau mal was passiert wenn Du in der Shell ein ``export DISPLAY=:0`` ausführst und dann Dein Programm startest.
tsaG
User
Beiträge: 14
Registriert: Samstag 22. August 2015, 00:20

Hm, der selbe fehler, bzw. er lautet jetzt

"couldn't connect to display ":0" bei 0.0 ist es dasselbe

EDIT: Anscheinend funktioniert es! Die Session auf meinem Display ist anscheinend jedoch leider nicht 0.0.

Starte ich jedoch eine VNC session, lese dann mit "echo $DISPLAY" die Werte aus, gebe sie dann in meine andere Console ein funktioniert es!

Nun muss ich jedoch nur noch einen weg finden, möglichst einfach und automatisch diesen Wert für mein SPI Display zu finden und dann darauf mein programm zu starten ...
Antworten