Python Script beim Start automatisch starten lassen

  • Hallo Zusammen,
    ich habe ein script was mir die geschwindigkeit anzeigen lässt als tachoanzeige.


    Dieses ist in diesem Pfad gespeichert: /home/pi/App/TachoAnzeige.py

    Dieses möchte ich nun per Autostart starten lassen. ich haben schon viele Themen gelesen über autostart uaf dieser Plattform und im Internet.
    Habe auch vieles ausprobiert wie in diesem Thema beschrieben ist: Automatisches Starten von Scripte / Programme ( Autostart )
    aber es funktioniert nichst. Ich bekomme das Programm auch nicht über das Terminal gesartet.

    Was kann ich tun damit es funktioniert?

    MfG Tim

    Einmal editiert, zuletzt von PDTProjekt (1. Februar 2017 um 17:35)

  • Python Script beim Start automatisch starten lassen? Schau mal ob du hier fündig wirst!

  • ...die geführt 100 millionste frage zum selben thema...

    FAQ => Nützliche Links / Linksammlung => autostart => desktop


    PS: "schon alles probiert aber nichts funktioniert" kann nicht sein. Es funktioniert mit absoluter sicherheit irgend eine der vielen Möglichkeiten. Wieso bei allen anderen nur bei dir nicht - liegt woran?
    PPS: Wenn das Script nicht startet dann bitte Ausgaben posten. Wenn es manuell schon nicht funktioniert kann ein "Autostart" auch nicht zaubern

  • Da erscheint bestimmt eine ausführlichere Fehlermeldung. Bitte copy&paste die vollständige Meldung.


    Warum du aber auch sowohl "import tkinter" als auch "from tkinter import *" machst ist eh schleierhaft und Quatsch. Denn sie wissen nicht was sie tun.


  • Also "import tkinter" ist eh fehl am platz das muss weg, habe ich auch schon bearbeitet.

    Wenn du das so stumpf machst würde deine Speedometer Klasse nicht mehr funktionieren. Besser wäre es genau andersherum zu machen: from bla import * rauswerfen, sowas ist eh ein gewaltiger Fehler.

    Guck dir dazu am besten noch mal meine Version des Scripts in deinem anderen Thread an, da passt es nämlich.

    Wie bootsmann gerade anmerkte:
    Du übergibst dein Script direkt dem python2 Interpreter. Deine Module sind aber von python3. Das sind 2 verschiedene und voneinander unabhängige Umgebunden. Bei python2 heißt das Module Tkinter, bei python3 aber tkinter. Case Sensitiv!

  • Alles klar , das mit python2 und python3 habe ich verstanden, in dem Script was du in meinem Thread geschriebn hast funktioniert das img nicht, aber naja das ist jetzt nebensache. es funktioniert ja jetzt im Terminal. ich probiere jetzt die Autostart scripte nochmal von neu :) Danke !

  • [al=allgemein]=> Allgemein[/al]

    Wenn du das Script über deinen Dateimanager startest befindest du dich direkt in dem Verzeichnis wo auch die Bilddateien liegen. Das Unterscheidet sich also von einem "Autostart" in Form von "python3 /home/pi/App/TachoAnzeigeFertig.py" ebenfalls.

    Beispiel:
    Aktuell befinde ich mich im Verzeichnis /root/
    Dort führe ich den Befehl aus: python3 /home/pi/programm.py
    Im Script sind aber relative Pfade wie zum Beispiel: pic1 = tkinter.PhotoImage(file="No.gif")

    Was passiert dann?
    Das Bild kann nicht geladen werden weil es keine Datei No.gif im Verzeichnis /root/ gibt!

    Lösung?
    Absolute Pfade im Script, oder vorher in das richtige Verzeichnis wechseln, oder folgendes nutzen:

    Befindest du dich aktuell im Verzeichnis /home/pi/ ... dem HOME Verzeichnis des pi Benutzers ... und möchtest auf ein Verzeichnis einer anderen Ebene zugreifen, dann hast du 2 Möglichkeiten:
    1) Den absoluten Pfad, beginnend ab dem Wurzelverzeichnis, angeben: /var/www/html/
    2) Von deiner Ebene solange herunter bis man beim Wurzelverzeichnis ankommt und ab da dann weiter: ../../var/www/html/

    " . " ist das aktuelle Verzeichnis
    " .. " das übergeordnete Verzeichnis.

    Das gleiche gilt dann nämlich auch wenn man eine ausführbare Datei ausführen möchte:
    /home/pi/Desktop/script.py
    oder wenn du dich bereits in /home/pi/ befindest: Desktop/script.py
    oder du dich in /home/pi/Desktop/ befindest: ./script.py
    oder wenn das Script in /home/pi/ liegt du dich aber aktuell in /home/pi/Desktop/ befindest: ../script.py
    Würdest du keinen Pfad angeben sucht Linux in den PATH Verzeichnissen nach der Datei, würde in diesem Beispiel also nicht funktionieren: script.py

  • Ich habe jetzte folgendes versucht:
    Im Terminal eingegeben:
    sudo nano /etc/xdg/lxsession/LXDE/autostart

    folgendes eingefügt

    @/usr/bin/python3 /home/pi/App/UmessFertig.py


    und in meinem Programm steht am anfang:
    #!/usr/bin/python3

    aber nach dem start von meinem Pi passiert nichts,,was habe ich vergessen?!

    Einmal editiert, zuletzt von PDTProjekt (2. Februar 2017 um 20:02)

  • Das Script gitb ein Fenster aus was eine Batterie Anzeige ausgibt.
    und das Terminal wrid nicht gestartet.
    Aber habe es jetzt hinbekomen da ich es Mithilfe deines inks per x11vnc.desktop programmiert habe, jetzt startet das Skript automatisch nach dem start

    perfekt!!

    :danke_ATDE: vielen dank

    Wenn ich jetzt mehrere Skripte starten möchte brauche ich dann auch mehrere neue datei.desktop oder kann ich einfach mehrere Exec: Datei eingeben in der schon vorhandenen datei?

    Automatisch zusammengefügt:
    Ich habe es jetzt mit 2 Scripten geschafft das letzte Script beinhaltet aber auch GPIO Pins als inputs. dieses funktioniert beim starten nicht. muss ich die GPIO pins auch mit in den autostart einbinden?

    Einmal editiert, zuletzt von PDTProjekt (2. Februar 2017 um 20:51)

Jetzt mitmachen!

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