Hilfe, Probelme mit Autosart und Phyton

  • Hallo Leute ,
    ich muß mein Python Programm zwingen mit sudo starten, also so:
    sudo phyton Kompressor.py
    Starte ich es ohne sudo bekomme ich folgende Fehlermeldung:

    Traceback (most recent call last):File "Kompressor.py", line 228, in <module>
    lcd_byte(0x01, LCD_CMD)
    File "Kompressor.py", line 167, in lcd_byte
    GPIO.output(LCD_RS, mode) # RS
    RuntimeError: The GPIO channel has not been set up as an OUTPUT

    Jetzt zu meinem Problem:


    Wenn ich in die /etc/rc.local
    den Befehl: sudo phyton Kompressor.py reinschreibe führt er es scheinbar nicht mit sudo aus und ich bekomme
    obere Fehlermeldung !
    Ich habe es auch mit einer bash probiert in der dann der Befehl: sudo phyton Kompressor.py drinn steht !
    Aber auch die bash muß ich mit sudo ausführen sonst funktionierts nicht !
    Ich bin am verzweifeln !!!!!!!!!

    Bin für jede Hilfe dankbar !!!!

    Gruß Nurmi

  • Befehle die von rc.local aufgerufen werden, werden immer mit root rechten ausgeführt. Bedeudet das man sich hier das sudo sparen kann. nichtsdestotrotz

    Code
    sudo phyton Kompressor.py

    gehört auch nicht in die rc.local
    wenn dann

    Code
    #mit gesetzter shebang im script
    /path/to/my/file/Kompressor.py
    #ohne shebang
    /usr/bin/pyhton /path/to/my/file/Kompressor.py

    Wie sieht denn dein Code überhaupt aus, vielleicht liegt der Fehler auch da

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

    Edited once, last by dbv (May 19, 2016 at 9:07 AM).

  • Das komische ist, wenn ich den Code mit sudo starte funktioniert mein Programm, aber ohne sudo kommen
    die Fehlermeldungen !
    Zur rc.lokal:
    Ich muß irgendwie bewerkstelligen das das Program nach dem Booten gestartet wird.
    Wie soll ich das denn machen, außer mit der rc.lokal ?????


    ich habe auch gehört, das alles was in der rc.lokal steht mit sudo Rechten gestartet wird,
    aber es funktioniert eben nicht, mit und ohne sudo !
    Ich bekomme immer die Fehlermeldungen, wie wenn ich es ohne sudo starte !

    Hiiiiiiiiiiilfe !!!!!!!!!!

    Ich geb auch ein Bier auf, wenn die Lösung aus der Nähe von Worms kommt !!!!
    Automatisch zusammengefügt:
    Hier mein Code:

    Edited once, last by nurmili (May 19, 2016 at 9:32 AM).

  • Ich habe dieses Problem so noch nicht gesehen - eigentlich sieht ja alles gut aus. Die einzige Vermutung die ich anzubieten habe im Moment: entweder sind die GPIO-Pins noch nicht vom System aufgesetzt, so dass dein initialisierungs-Code ins leere laeuft. Oder jemand anders greift die sich.

    Ersteres koenntest du versuchen zu loesen, indem du eine lange Wartepause vor dem eigentlichen setup machst. Also als erste Zeile in main() ein time.sleep(30) oder so, damit das System komplett oben ist. Wenn das klappt, kann man sich an einen besseren Wert rantasten.

  • Puh, wann warum wie sudo bzw. wie die Rechte der GPIOs funktionieren habe ich mich noch nicht mit beschaeftigt. Schau erst einmal, ob es funktioniert - danach dann, wie man es schoener bekommt.

  • :@
    So, ich habs versucht, dein Vorschlag mit dem time.sleep !
    Hat aber nichts gebracht !!!!!
    Die Fehlermeldung kommt halt etwas später !!

    Ich steh kurz vor dem Suizid !!

    Trotzdem Danke für die Anregung !

    Gruß Nurmi


  • Wie soll ich das denn machen, außer mit der rc.lokal ?????

    Es gibt immer mehrere Möglichkeiten !!!! FAQ => Nützliche Links / Linksammlung => Autostart
    Es sei auch noch erwähnt dass das Script, wenn es denn unbedingt in /etc/rc.local eingetragen werden soll, in den Hintergrund geschickt werden sollte.
    Irgendwelche sudo's in /etc/rc.local sind Quatsch da das Script (/etc/rc.local ist ein sh Script) bereits als root ausgeführt wird und somit auch alle darin befindlichen Befehle etc.

    Aber Dein Problem ist dass dein Code nicht wirklich ordentlich ist - es herrscht Chaos. Mitten zwischen den Funktionen ist eine while, vor der while wird eine Funktion aufgerufen die aber erst später definiert wird, Einrückungen mancher Funktionen sind fehlerhaft, tonnenweise Leerzeilen die das Lesen deines Codes enorm erschweren und überhaupt sieht das alles irgendwie nach copy&paste aus...

    Gewöhn dir erst mal nen vernünftigen Programmierstyle an. Eine Einrückung besteht aus 4 Leerzeichen. Maximal 2 Leerzeilen und eigentlich auch nur nach Funktionen nicht nach jeder Codezeile.
    Bitte Code überarbeiten und dann noch mal über http://codepad.org posten

  • Hallo , danke für die Antwort.
    Aber es ist ja noch kein Meister vom Himmel gefallen !
    Ich versuche mein bestes, und ja, das sind Programmschnipsel !
    Ich bin halt Anfänger !!!!

    Gibt es noch eine Möglichkeit mein Programm nach dem booten automatisch zu starten,
    außer der rc.lokal ??????

    Auch wenn ich es etwas Chaotisch geschrieben habe läuft mein Programm
    mit sudo und macht was es soll !
    Ich kann mal versuchen etwas aufzuräumen, aber ich denke die Fehlermeldungen behebe
    ich dadurch wohl eher nicht !

    Gruß Nurmi

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!