Я написал скрипт Python, который запускает некоторые команды svn, используя subprocess.Popen
. Например:Python: subprocess.Popen никогда не возвращает
svn ls svn+ssh://url1/trunk
svn cp svn+ssh://url1/trunk svn+ssh://url1/branch/1 --parents -m "blah"
Для каждой команды, я создаю объект subprocess.Popen:
p = subprocesp.Popen(cmd, shell=True, stdout=sp.PIPE, stderr=sp.STDOUT)
И ждать его до конца:
output = p.communicate()[0].strip()
return_code = p.returncode
Проблема что для некоторых команд svn cp
, которые немедленно сбой в оболочке для копирования несуществующих репозиториев, p.communicate()
никогда не возвращается.
Дополнительная информация:
- код выполняется с использованием пула потоков (
multiprocessing.pool.ThreadPool
) - Явления является menifested только за то,
- Использование оболочки, точно такие же команда завершается с кодом ошибки 1 менее чем за две секунды.
Любая идея, чего я здесь не хватает?
Ваше сообщение побудило меня проверить то же самое с Visual Studio .. работает в REPL, но не из VS2015. –