Собственно, столкнулся с такой проблемой - необходимо сгенерировать довольно длинной шелловой командой файл сертификата, на основе которого потом генерируется пакет, причем со вводом пароля из сертификата. Прикол в том, что если вгонять эту строку в os.popen() - то все работает, но сама команда выполняется очень долго, секунд 15 в среднем. А если же юзать subprocess.Popen() - все выполняется быстро, но на этапе сборки пакета выдает ошибку либо “Файл ключа не найден”, либо “Неверный пароль”. Код выглядит так:
from subprocess import Popen, PIPE
os.chdir(self.fullpath)
command = "создаем сертификат"
proc = Popen(command, shell=True, stdout=PIPE)
...
os.chdir(self.fullpath)
command = "генерим пакет на основе сертификата"
proc2 = Popen(command, shell=True, stdin=PIPE, stdout=PIPE)
proc2.stdin.write(mypass+'\n')
Хотелось бы, естественно, побыстрее. В чем проблема?