moin Joachim! ja, die Sache mit dem externally managed environment auf den neuen Raspbians... Um auch gleich deine andre Frage damit zu erschlagen: Am besten macht du ein virtual environment (wie auch oben in dem Warnungsmeldungs-Blabla vorgeschlagen) und installierst alle requirements da drin und führst natürlich auch das Programm dadrin aus. dann ist Ruhe 😉 virtual environment erstellen: in deinen Ornder /optolink gehen und python -m venv myvenv eingeben. Damit legt Raspi (genauer Python) einen Unterordner 'myvenv' in deinem Ordner an, wo dann 'alles' für die virtuelle Umbebung rein kommt. dann die virtuelle Umgebung starten mit source myvenv/bin/activate Jetzt hast du ein '(myvenv)' am Anfang von deinem prompt, du bewegst dich also klar erkennbar in deiner virtuellen Umgebung. Jetzt kannst du alle requirements installieren pip install pyserial pip install paho-mqtt kein Gemecker mehr 🙂 Das müsste eigentlich auch schon alles sein, jetzt kannst du mit python optolinkvs2-splitter.py das Skript starten. So ziemlich alles was du (bzw das Skript) braucht, steht jetzt in dem myvenv Ordner. Ich meine inklusive des Python. Und dementsprechend benutzt er jetzt alles (time, importlib, threading, serial und auch phao) auch von da. Wenn jetzt Python alles auf den Kopf stellen würde, und du dieses Update auf deinem Raspbian installieren würdest, würde der optolink-splitter in der virtuellen Umgebung immer noch laufen wie eh und je, weil das Environmet sozusagen isoliert und unbeeindruckt von irgendwelchen 'äusseren Updates' ist. Wenn du was updaten wolltest (never touch a running System! 😉 ) müsstest du das in der virtuellen Umgebung machen. Um das myvenv zu verlassen gibst du einfach deactivate ein und dein Prompt ist wieder der normale (und dein optolink-splitter funktioniert nicht mehr 😁 ) Wenn du den Splitter irgendwann per systemctl Service starten willst, musst du das auf die virtuelle Umgebung beziehen: sudo nano /etc/systemd/system/optolink-splitter.service den Kram da reinkopieren: [Unit] Description=Optolink-Splitter Service After=network.target [Service] Type=simple User=pi Group=pi WorkingDirectory=/home/pi/optolink/ Environment="PATH=/home/pi/optolink/myvenv/bin" ExecStart=/home/pi/optolink/myvenv/bin/python /home/pi/optolink/optolinkvs2_switch.py Restart=always RestartSec=3 [Install] WantedBy=multi-user.target speichern, und danach dann sudo systemctl daemon-reload und starten sudo systemctl start optolink-splitter.service und wenn es ohne mäkeln läuft, das automatisch beim Booten Starten aktivieren: sudo systemctl enable optolink-splitter.service wie gewohnt bei Bedarf sudo systemctl status optolink-splitter.service sudo systemctl stop optolink-splitter.service sudo systemctl restart optolink-splitter.service sudo systemctl disable optolink-splitter.service Nicht wundern, ein Dienst gibt nix auf dem Bildschirm aus. Kontrolle also am einfachsten mittels des MQTT Explorers. ich hoffe das klärt und hilft erstmal, ansonsten weisst du ja, wo du uns findest... 😉 Grüsse! Phil
... Mehr anzeigen