dll-live hat geschrieben: Samstag 8. November 2025, 19:43
Meine Überlegung ist wenn ich es Systemweit installiere brauche ich es nur einmal und alle Scripte ( und auch User) haben darauf Zugriff, ...
Du sagst im vorherigen Post, dass alle systemd Unit unter dem gleichen User laufen - jetzt redest du von mehreren Usern... was denn jetzt?
sonst brauche ich (mind eine oder auch mehrere?) venv und muss immer darauf bedacht sein, dass diese auch mit eingebunden wird (bei jedem Script (und User))
Ob ein oder mehrere musst du selber wissen. Man kann alles in eine venv packen, normalerweise gilt es aber als "best practice", jedes Programm in eine eigenes venv zu packen.
Und was meinst du mit "einbinden"? Man kann venvs nicht einbinden. venvs sind - vereinfacht gesagt - "nur" eine Python-Umgebung, die vom systemweiten Python isoliert ist, was durch A) kopieren des systemweiten Python-Interpreters und B) Umbiegen von ein paar Umgebungsvariablen für das venv erreicht wird. Und ein venv muss nicht aktiv sein, um es zu nutzen. Du musst das Python-Skript nur mit dem vollen Pfad zum Python-Interpreter im venv aufrufen, dann "sieht" dieses Skript auch nur die Module, die im venv installiert sind. Spricht: geht auch ohne Probleme aus einer Service Unit heraus. Und in Units kann man den Benutzer angegeben, mit der die Unit laufen soll (falls sie nicht per default als root laufen soll).
Gruß, noisefloor