Guten Tag ich wollte einmal fragen ob mi jemand mit meinem Programm helfen kann. Ich bin Python Neueinsteiger und kenne noch nicht alles. Deswegen ist meine Frage an euch wie ich dieses Programm automatisch Starten lasse ohne dafür einen command ins Terminal einzugeben.
import smbus
import time
bus = smbus.SMBus(1)
config = [0x00, 0x00]
bus.write_i2c_block_data(0x18, 0x01, config)
bus.write_byte_data(0x18, 0x08, 0x03)
time.sleep(0.5)
while True:
data = bus.read_i2c_block_data(0x18, 0x05, 2)
ctemp = ((data[0] & 0x1F) * 256) + data[1]
if ctemp > 4095 :
ctemp -= 8192
ctemp = ctemp * 0.0625
ftemp = ctemp * 1.8 + 32
print ("Temperature in Celsius is : %.2f C" %ctemp)
print ("Temperature in Fahrenheit is : %.2f F" %ftemp)
Pythonprogramm automatisch starten
Du musst die Datei sowei ich weiß nur in den Autostart Ordner packen (am besten eine Verknüpfung), den Autostart Ordner öffnest du (unter Windows) in dem du die Windowstaste + R drückst und dort in "Ausführen" dann "shell:startup" eingibst.
-
- User
- Beiträge: 85
- Registriert: Freitag 18. Januar 2019, 08:02
1. Skript rechte vergeben
2. Script in rc.local eintragen (Hier vor exit 0 den Pfad zu deinem Skript eingeben und ein "&" am ende: z.B. /home/pi/test.py &
3.
Dein Skript sollte nun nach dem Neustart "automatisch" laufen. Zum Überprüfen kannst du folgendes eingeben:
Ausgabe sollte ca wie folgt aussehen:
Code: Alles auswählen
sudo chmod +x /.../test.py
Code: Alles auswählen
sudo nano /etc/rc.local
3.
Code: Alles auswählen
sudo reboot
Code: Alles auswählen
ps -ef | grep python
pi@raspberrypi ps -ef | grep python
root 2055 1 10 13:47 ? 00:00:01 python /home/pi/test.py
Die gezeigte Methode mit rc.local ist veraltet und sollte nicht mehr verwendet werden. Heute schreibt man für so etwas eine systemd-Unit.
Siehe zum Einstieg etwa:
https://wiki.ubuntuusers.de/Howto/syste ... _Beispiel/
Siehe zum Einstieg etwa:
https://wiki.ubuntuusers.de/Howto/syste ... _Beispiel/
kann das sein, das es der Aufruf "python3 /home/pi/sctipt.py&" lauten muss?
Bei mir geht aber keiner von beiden Wegen mit oder ohne "python3" vor dem Script scheint egal zu sein.
Kann man irgendwo ein log auslesen, aus dem man erkennen kann, warum das nicht startet?
Bei mir geht aber keiner von beiden Wegen mit oder ohne "python3" vor dem Script scheint egal zu sein.
Kann man irgendwo ein log auslesen, aus dem man erkennen kann, warum das nicht startet?
@dermaxem: Mit einer systemd-Service-Unit landen die Ausgaben auch im Fehlerfall automatisch im Syslog und können mit `journalctl` abgefragt werden. Das ist unter Anderem der Grund, warum man sowas nicht mehr mit `/etc/rc.local` macht.
Alternativ kannst du auch einen Cronjob einrichten:
Als Benutzer, der das Skript ausführen soll:
crontab -e
Als Benutzer, der das Skript ausführen soll:
crontab -e
Code: Alles auswählen
@reboot Pfad/zu/deinen/Script.py