Python subprocess.call () schlägt fehl, wenn pythonw.exe verwendet wird

Ich habe Python-Code, der korrekt funktioniert, wenn ich python.exe verwende. Wenn ich pythonw.exe verwende, schlägt er jedoch fehl.

    def runStuff(commandLine):
        outputFileName = 'somefile.txt'
        outputFile = open(outputFileName, "w")

        try:
            result = subprocess.call(commandLine, shell=True, stdout=outputFile)
        except:
            print 'Exception thrown:', str(sys.exc_info()[1])

    myThread = threading.Thread(None, target=runStuff, commandLine=['whatever...'])
    myThread.start()

Die Nachricht, die ich bekomme, ist:

    Exception thrown: [Error 6] The handle is invalid

Wenn ich jedoch den Parameter 'stdout' nicht spezifiziere, startet subprocess.call () in Ordnung.

Ich kann sehen, dass pythonw.exe die Ausgabe möglicherweise selbst umleitet, aber ich kann nicht erkennen, warum ich die Angabe von stdout für einen neuen Thread blockiert habe.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage