Seite 1 von 1

Child-Prozesse starten?!

Verfasst: Freitag 6. Juni 2003, 12:26
von froedi
hi!

ich möchte in meinem programm mehrere child-prozesse (versch. andere scripts) starten, die parallel laufen sollen.

ich habe bereits versucht mit

Code: Alles auswählen

os.popen(...)
die neuen prozesse zu starten, nur leider wartet python immer darauf, dass ein prozess beendet wird, bevor der nächste gestartet wird. d.h. die prozesse laufen nacheinander und nicht parallel, was ich jedoch nicht will!

wie schaffe ich es, dass child-prozesse parallel laufen??


nebenbei: in den scripts, die als child-prozesse aurufen möchte arbeite ich mit relativen pfaden. wenn ich sie nun von einem anderen ort aus aufrufe, bekomme ich fehlermeldungen à la "no such file or directory" :(

wie kann ich diesen fehler beheben?



danke schonmal für eure hilfe ;)

Verfasst: Freitag 6. Juni 2003, 12:57
von Dookie
Hi froedi,

os.sqawn in seinen verschiedenen Ausführungen startet Commandos/Scripte, wenn als mode P_NOWAIT übergeben wird als eigenen Prozess. Zu 2, falls Du unter Linux/Unix arbeitetst, verwende Pfade relativ zum Homeverzeichnis oder absolute Pfade, Beispiel

Code: Alles auswählen

userdatenfilename = os.path.join(os.path.expanduser("~"),".myscript","daten")
Gruß

Dookie

Verfasst: Freitag 6. Juni 2003, 13:47
von Gast
danke für den tipp dookie!

mit os.spawn*() hatte ich schon ein wenig herumexperimentiert, aber ich bin nicht klargekommen damit :(

wie man spawnl() & spawnv() verwendet weiß ich jetzt, viel nützlicher wären jedoch spawnlp() & spawnvp(). ABER ...

AttributeError: 'module' object has no attribute 'spawnvp'

:(

btw: ich arbeite unter windows - liegt es vielleicht daran, dass die genannten funktionen nicht verfügbar sind?

Verfasst: Freitag 6. Juni 2003, 14:01
von Dookie
yepp, aus der Python-Libraryreferenz
spawnlp(), spawnlpe(), spawnvp() and spawnvpe() are not available on Windows
Gruß

Dookie

Verfasst: Freitag 6. Juni 2003, 14:07
von Gast
oh mein gott - das hatte ich ja ganz übersehen :roll:

danke nochmals!