pyInstaller und subprocess
Verfasst: Montag 27. April 2026, 17:20
Hallo zusammen,
mal wieder ich und zu einem Problem, wo google aktuell nicht weiterhelfen kann.
Mein Script, soll laut Befehl in sich selbst per subprocess im Hintergrund Starten.
normal per "python3 ./test.py" läuft es auch aber wenn ich dies in pyinstaller Onefile
umwandle, geht hier auf einmal nichts mehr.
Python Version: 3.10.12 (soll so sein)
pyinstaller Version: 6.19.0
hier mein Beispiel, was ich dafür Vorbereitet habe:
Dachte zuerst es liegt an den Path oder am Script Name oder liegt es daran, das die Datei im tmp Ordner ausgeführt wird
und sich selbst nicht doppelt ausführen kann.
Oder muss da eine weiter Datei mit rein die das Script aufrufen könnte aber es muss mit Impot dann laufen...
Gruß
mal wieder ich und zu einem Problem, wo google aktuell nicht weiterhelfen kann.
Mein Script, soll laut Befehl in sich selbst per subprocess im Hintergrund Starten.
normal per "python3 ./test.py" läuft es auch aber wenn ich dies in pyinstaller Onefile
umwandle, geht hier auf einmal nichts mehr.
Python Version: 3.10.12 (soll so sein)
pyinstaller Version: 6.19.0
hier mein Beispiel, was ich dafür Vorbereitet habe:
Code: Alles auswählen
#!/usr/bin/env python3
import time, os, sys
import subprocess as sp
if getattr(sys, "frozen", False):
APPLICATION_PATH = os.path.dirname(sys.executable)
elif __file__:
APPLICATION_PATH = os.path.dirname(__file__)
APPLICATION_PATH = os.path.normpath(APPLICATION_PATH)
SCRIPT_NAME = os.path.basename(__file__)
EXE = APPLICATION_PATH + "/" + SCRIPT_NAME
def zahler():
I = 0
for a in range(10):
I += 1
time.sleep(0.25)
def start():
sp.Popen(
[sys.executable, EXE, "nur_ein_test"],
stdout=sp.DEVNULL,
stderr=sp.DEVNULL
)
if len(sys.argv) > 1:
if sys.argv[1] == "--start":
start()
if sys.argv[1] == "nur_ein_test":
zahler()
sys.exit(0)und sich selbst nicht doppelt ausführen kann.
Oder muss da eine weiter Datei mit rein die das Script aufrufen könnte aber es muss mit Impot dann laufen...
Gruß