Programm unabhängig vom Python-Thread ausführen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Simpliciter
User
Beiträge: 32
Registriert: Sonntag 3. Februar 2013, 17:29

Hallo!

Ich habe ein Problem beim Entwickeln eines Updaters für mein Projekt, bei dem ich einfach nicht weiter komme...
Und zwar wird eine Setup.exe-Datei gedownloadet, wenn ein entsprechendes Update gefunden wurde, dass an einem bestimmten Ort abgespeichert wird. Dieses soll dann ausgeführt werden, wobei das Python-Programm jedoch nicht geöffnet sein darf. Die Setup.exe bearbeitet (bzw. löscht) die Dateien, die "zum Programm" gehören. Windows blockiert jedoch diese Vorgänge, weil die entsprechenden Skripts ja noch geöffnet sind. Die Setup "spuckt mir dann eine Fehlermeldung aus", dass das Programm nicht installiert werden könne, weil die Daten von Windows blockiert werden.
(Ich hoffe Ihr versteht, was ich meine; sonst bitte schreiben!!!)
Ich müsste also einen Weg verwenden, bei dem die Setup weiter läuft, auch wenn der Python-Skript bereits geschlossen wurde.
Ich habe natürlich schon relativ lange nach einer Lösung gesucht, bin aber so gar nicht fündig geworden... :K
Ich weiß nicht, wie ich an das Problem sonst "rangehen" soll. Hat jemand von Euch einen Tipp für mich?? Wäre wirklich sehr dankbar!! :?:

Liebe Grüße
BlackJack

@Simpliciter: Ich würde es mal mit einer passenden `os.exec*()`-Funktion probieren. Die ersetzen den laufenden Prozess durch einen anderen.
Simpliciter
User
Beiträge: 32
Registriert: Sonntag 3. Februar 2013, 17:29

BlackJack hat geschrieben:@Simpliciter: Ich würde es mal mit einer passenden `os.exec*()`-Funktion probieren. Die ersetzen den laufenden Prozess durch einen anderen.
Danke!! :D :D
Als ich nach Beispielen für "os.execlp()" gesucht habe bin ich zufällig auf "win32api.WinExec(befehl)" gestoßen. Dies scheint das zu machen, wonach ich gesucht habe, oder (Hoffe ich mal, werde ich jetzt mal genau ausprobieren...)? Würdest Du ehr die os-Lösung, oder die win32api-Lösung verwenden? Ich habe mit den beiden Funktionen sehr wenig (eigendlich noch nie) Erfahrungen gemacht. Hat jemand da vielleicht schon Erfahrungen mit diesen beiden Funktionen gesammelt??
LG
BlackJack

@Simpliciter: Da es `win32api` unter Linux nicht gibt, würde *ich* das nicht verwenden (können). ;-)
Simpliciter
User
Beiträge: 32
Registriert: Sonntag 3. Februar 2013, 17:29

BlackJack hat geschrieben:@Simpliciter: Da es `win32api` unter Linux nicht gibt, würde *ich* das nicht verwenden (können). ;-)
Jep, mir geht es genau so. Ich verwende OpenSuse, da bringt einen 'win32api' recht wenig. ;) Leider hat sich rausgestellt, dass die Linux-Version von dem Programm nicht allzu häufig verwendet wird :( , weshalb die "Auto-Update-Funktion" (oder wie auch immer man sie nennen will) auch nur unter Windows funktionieren soll.

Danke nochmal! :)
Antworten