Autostart python script & Python Gui

  • Nachdem ich langsam am verzewifeln bin, wende ich mich jetzt an das Forum.


    Ich möchte ein Python Script für eine Temperaturregelung und ein zugehöriges, recht einfaches, GUI automatisch starten.

    Beide Einzelfunktionen lassen sich getrennt starten und arbeiten auch getrennt voneinander.


    Die gängigen Methoden mit rc.local oder /home/pi/config/autostart habe ich bereits ausprobiert, dabei startet jedoch immer nur das Script für die Regelung, nicht das für das GUI.


    Ich habe auch die Methode versucht über ein 3. Start Script in python die anderen zu starten, funktioniert in der Konsole einwandfrei, beim Autostart startet das GUI wieder nicht.


    Ich nutze Raspbian auf aktellster Version.

    Hier mein 3. - Start - Script

    Code
    # -*- coding: utf-8 -*-
    import os, sys, time
    
    # Definition Temperaturprogramm starten
    def starttemp():
        os.system('python /home/pi/regelung.py&python /home/pi/temperatur.py') # Consolenbefehl beide eigentlichen Programme starten
       
    starttemp()

    Hier meine etc/rc.local Datei


    Alle Scripte habe ich über sudo chmod +x /home/pi/... ausführbar gemacht.


    Mir ist egal ob ich das Start Script oder beide einzeln starte, hauptsache es startet das GUI endlich mit.


    Schonmal Danke für eure Mithilfe:)


    LG Andreas

  • Absolute Pfade verwenden, im Code nicht vom richtigen cwd der Shell abhängig sein. Dein Start-Script hat null Mehrwert, das kannst du gleich wieder in die Tonne treten, nur eine weitere Fehlerquelle. Python-Programme so aus Python-Scripten heraus starten ist ein absolutes NoGo, das geht mit imports und Methoden/Funktionsaufrufen.


    Ohne Kenntnis über das verwendete GUI-Toolkit kann ich sonst nichts sagen. Außerdem: Wie Frage ich nach Hilfe?

  • # -*- coding: utf-8 -*-

    Mir ist egal ob ich das Start Script oder beide einzeln starte, hauptsache es startet das GUI endlich mit.

    Ein GUI Script setzt vorraus, dass bereits mindestens ein X-Server gestartet ist.

    Ein X-Server, samt Display Manager wird aber erst nach dem (Grafik-)Login eines Users für den User brauchbar.

    Daher kann ein Script mit Grafikausgabe i.d.R. nur über den Autostart des Users ausgeführt werden, der selbst ins Grafiksystem einloggt. Wird nur in der Textlonsole (CLI) eingeloggt, muss mit < startx > das Grafiksystem erst gesondert gestartet werden.


    os.system('python /home/pi/regelung.py&python /home/pi/temperatur.py') wirft eine Fehlermeldung: can't find "/home/pi/regelung.py&python"


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Hallo,

    laßt doch die Spitzfindigkeiten.

    • Es gibt boot to console (CLI) und
    • es gibt boot to desktop (GUI)

    In beiden Betriebsarten kann Grafik angezeigt werden.


    In der Konsole/CLI sind Beispiele: mit python/pygame oder das time-zone-skript.

    Für den Desktop/GUI Betrieb wird ein ein X11 Server im Hintergrund gestartet.

    Schönen Gruß, kle

  • Deshalb fragte ich nach dem GUI Toolkit...

    Ich nutze Tkinter, habe dank euerer Tipps nochmals in der richtigen Richtung gesucht, habe dadurch meinen Fehler gefunden.


    2 3 4 5 6 [Desktop Entry]
    Name=Autostart-Script
    Comment=Kommentar
    Type=Application
    Exec=Mein-Script.sh
    Terminal=false

    Da laut euren Tipps das Starten über den Benutzer die Lösung sein sollte, habe ich damit nochmals rumprobiert.


    Beim setzen des Befehls Terminal=true wird das GUI gestartet, ansonsten nicht.

    Vielen Dank für die schnelle Hilfe :bravo2: