Und wie hast Du das Skript gestartet?
Eigentlich muss ich nicht fragen, denn Du hast es mit python statt mit python3 gestartet.
Und wie hast Du das Skript gestartet?
Eigentlich muss ich nicht fragen, denn Du hast es mit python statt mit python3 gestartet.
Raspi mit langem Tastendruck runterfahren? Schau mal ob du hier fündig wirst!
Ich muss gestehen, ich habe es manuell gar nicht gestartet. Ich habe einfach auf gut Glück versucht ob es funktioniert - also Neustart dann langer Tastendruck.
Dann nimm halt mal Putty und geh auf den Pi.
Guck ob das Script überhaupt läuft, mit ps aux | grep button.
Ach so, nein, wird es eh nicht, wenn die Fehlermeldung kommt.
Aber cat /home/pi/buttonoff.py sollte was anzeigen, poste da mal die Ausgabe.
Ich muss gestehen, ich habe es manuell gar nicht gestartet.
Woher hast Du dann die Fehlermeldung aus Beitrag #8?
Oder einfach nochmal nachstellen, wie in #19
fred0815 Hast Du noch ein System mit Python2? (python -V zeigt es an)
Falls ja, dann führe mal bitte python /home/pi/buttonoff.py aus und vergleiche mal die Fehlermeldung mit der aus Beitrag #8!
Dann nimm halt mal Putty und geh auf den Pi.
Guck ob das Script überhaupt läuft, mit ps aux | grep button.Ach so, nein, wird es eh nicht, wenn die Fehlermeldung kommt.
Aber cat /home/pi/buttonoff.py sollte was anzeigen, poste da mal die Ausgabe.
Das mache ich heute so gegen 16:30. Bin noch auf Arbeit
fred0815 Hast Du noch ein System mit Python2? (python -V zeigt es an)
Falls ja, dann führe mal bitte python /home/pi/buttonoff.py aus und vergleiche mal die Fehlermeldung mit der aus Beitrag #8!
Ja, ich habe 2 und 3:
python /home/pi/buttonoff.py
File "/home/pi/buttonoff.py", line 13
SyntaxError: Non-ASCII character '\xc3' in file /home/pi/buttonoff.py on line 13, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
Er schreibt doch oben immer python3.
Der Fehler kommt von Deinem Editor. Trage mal eine Zeile unter dem Shebang die Zeile
ein.
Er schreibt doch oben immer python3.
Ja, aber so eine 3 wird schnell mal vergessen in den Aufruf des Skripts oder den Shebang zu schreiben.
Zitatich habe mir mit meinem Raspberry Pi 2 Model B einen ARCADE Automat gebaut.
Pi 2, da könnte schon was älteres drauf laufen, auch wenn der Eindruck vermittelt wird, der TE habe den Automaten gerade erst gebaut, könnte es sein, dass eine ältere Version bereits installiert war.
Das war dann im Nachhinein auch mein Gedanke, dass evtl. ein fertiges Image o.ä. verwendet wird.
Warten wir mal die Ausgabe ab.
Pi 2, da könnte schon was älteres drauf laufen, auch wenn der Eindruck vermittelt wird, der TE habe den Automaten gerade erst gebaut, könnte es sein, dass eine ältere Version bereits installiert war.
Ja, recht hast du. Da habe ich mich bzgl. des Zeitraumes wohl etwas missverständlich ausgedrückt. Der ARCADE-Automat wurde schon ca. 2019 gebaut bzw. ist das auch eine etwas älteres Image.
Ich poste später die Ausgabe von
und
Gruß Rooki
Zur Not halt noch mit os.system() ausführen.
Zur Not halt noch mit os.system() ausführen.
NEIN!
Es gibt ja auch subprocess.check_call() und das schon seit Python2.7.
Zur Not halt noch mit os.system() ausführen.
Besser nicht.
Ein Hinweis zu subprocess.run, Popen usw.:
Das erste Argument ist das Programm ohne Argumente als str oder eine Liste, in der das erste Element das Programm ist.
Wenn man einem Programm Argumente übergeben will, dann eine Liste verwenden.
Die Umgebungsvariable PATH enthält die Pfade, in denen nach dem Programm gesucht wird (Name muss passen und Programm muss ausführbar sein). Mit os.get_exec_path() kann man sich die Suchpfade als Liste ausgeben lassen.
Hier noch ein paar Beispiele mit subprocess.run.
import subprocess
subprocess.run("uname") # geht
subprocess.run("uname -a") # geht nicht, da das Programm "uname -a" im Suchpfad nicht existiert.
subprocess.run(["uname", "-a"]) # geht, da das erste Argument ein Programm ist, dass sich im Suchpfad befindet.
subprocess.run(["uname ", "-a"]) # geht nicht, da es das Programm 'uname ' nicht existiert. Leerzeichen beachten.
Man kann str auch mit shlex.split splitten:
(Split the string *s* using shell-like syntax.)
Zitat['uname', '-a']
Also,
die Abfrage cat /etc/os-release ergibt:
pi@raspberrypi ~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)"
NAME="Raspbian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=raspbian
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
Alles anzeigen
die Abfrage python3 -V ergibt:
Was heißt das jetzt für das Skript im #3 ? Umschreiben oder gibt es für meinen Wunsch einen anderen Lösungsansatz?
Gruß Rooki
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!