Ich habe einen Code, der pip verwendet, um eine Python-Umgebung für den Out-Build-Prozess zu booten: Dies ist eine schöne Möglichkeit, die Build-Anforderungen vom Rest des Host-Systems zu isolieren und konsistentere Build-Ergebnisse zu erhalten insgesamt.Wie man auf ein Kind wartet, das sich mit os.execv() auf win32 respawnt?
Wie auch immer, der Code, den ich habe pip.py
Laufwerke scheint einige Probleme auf Windows haben. Das Problem ist, dass ich den Prozess pip
von meinem Bootstrapping-Skripte mit subprocess.Popen()
starten und dann auf den Prozess warten, aber dies geschieht zu früh aufgrund der Tatsache, dass pip
execv verwendet, um sich unter dem neuen virtualenv neu zu erstellen es erstellt. Wenn dies passiert, sieht mein Elternteil, dass das Kind mit einem Exitcode von 0 verlassen wurde und es macht weiter so.
Also die Frage ist einfach: Wie kann ich mit einem os.execv()
Anruf von einem Kindprozess auf Win32 in Art und Weise umgehen, wo ich den Rückkehrcode des neu ausgeführten Kindprozesses feststellen kann?
Eine Flag-Datei klingt wie eine brauchbare Lösung, es ist nicht so schlimm, eine leere Datei zu haben, um in meiner Meinung nach so etwas zu überprüfen –