У меня есть код Python, который работает правильно, когда я использую python.exe для его запуска, но не работает, если я использую pythonw.exe.
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()
Я получаю сообщение:
Exception thrown: [Error 6] The handle is invalid
Однако, если я не укажу параметр 'stdout', subprocess.call () запустится нормально.
Я вижу, что pythonw.exe может перенаправлять сам вывод, но не могу понять, почему я не могу указать stdout для нового потока.