global separator_string separator_string = " " def subprocess(request): print(request) p = Popen(request, stdout=PIPE, stdin = PIPE, shell= True) #p.communicate(bytes("y", 'UTF-8')) p.stdin.write("y\n".encode()) retcode = p.wait() text = p.stdout.read() print(text.decode('cp866')) print("exit", "code: %d" % retcode, sep=separator_string) return retcode ######################## request = [ "configure.exe", conf_type_link, conf_type_build, "-opensource", "-qt-zlib", "-qt-libpng", "-qt-libmng", "-qt-libjpeg", "-no-crt", "-nomake", "demos", "-nomake", "examples", "-no-qt3support", "-no-qmake", ] subprocess(request)
проблема состоит в том, что p.wait() не отпускает процесс, если убрать эту строчку работает, но как бы не логично, я жду пока процесс закончит свою работу. Ка исправить?