p = Popen("build-clean.bat", shell=True,stdout=PIPE,stderr=PIPE)
в build-clean идет процесс сборки какого-то там кода дло в том, что вместо того, чтобы его выполнить, такое ощущение, что питон просто проходит мимо, не дожидаясь выполнения бат-файла и идет дальше. а нужно, чтобы дождался выполнения
p = Popen("cmd", stdin = PIPE, stdout = PIPE)
output, err = p.communicate("""build-clean.bat""")
Вылетает с ошибкой I/O operation on closed file
Помогите запустить
Здравствуйте, Mamut, Вы писали:
M>M>p = Popen("build-clean.bat", shell=True,stdout=PIPE,stderr=PIPE)
M>
M>в build-clean идет процесс сборки какого-то там кода дло в том, что вместо того, чтобы его выполнить, такое ощущение, что питон просто проходит мимо, не дожидаясь выполнения бат-файла и идет дальше. а нужно, чтобы дождался выполнения
M>M>p = Popen("cmd", stdin = PIPE, stdout = PIPE)
M>output, err = p.communicate("""build-clean.bat""")
M>
M>Вылетает с ошибкой I/O operation on closed file
M>Помогите запустить
Могу предположить, что надо сделать:
p.wait()
чтобы дождаться окончания.
http://docs.python.org/library/subprocess.html#subprocess.Popen.wait
Здравствуйте, Mamut, Вы писали:
M>M>p = Popen("build-clean.bat", shell=True,stdout=PIPE,stderr=PIPE)
M>
M>в build-clean идет процесс сборки какого-то там кода дло в том, что вместо того, чтобы его выполнить, такое ощущение, что питон просто проходит мимо, не дожидаясь выполнения бат-файла и идет дальше. а нужно, чтобы дождался выполнения
Попробуй вместо "build-clean.bat" запускать "cmd /c build-clean.bat"
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, Mamut, Вы писали:
M>M>p = Popen("build-clean.bat", shell=True,stdout=PIPE,stderr=PIPE)
M>
M>в build-clean идет процесс сборки какого-то там кода дло в том, что вместо того, чтобы его выполнить, такое ощущение, что питон просто проходит мимо, не дожидаясь выполнения бат-файла и идет дальше. а нужно, чтобы дождался выполнения
M>M>p = Popen("cmd", stdin = PIPE, stdout = PIPE)
M>output, err = p.communicate("""build-clean.bat""")
M>
M>Вылетает с ошибкой I/O operation on closed file
M>Помогите запустить
модуль subprocess. Вот пример (использовался для unit тестирования приложения, которое должно было взаимодействовать с *.so, соответственно, в тесте использовался mock, а компилировался этот mock в setUp вот таким макаром):
subprocess.check_call([
'gcc', '-shared', '-o' + filename + shared_lib_ext,
filename + '.c'
])