Однопоточный:
Код: Выделить всё
# my loop that generates SVG code
process = subprocess.run([inkscape_path, '-p', '-o', filename],input=svg_bytes)
Если я попробую это с помощью communication(), он будет ждать завершения каждого процесса. Поэтому я устанавливаю тайм-аут равным 0 и игнорирую возникшее исключение.
Код: Выделить всё
processes = []
# my loop that generates SVG code
process = subprocess.Popen([inkscape_path, '-p', '-o', filename],stdin= subprocess.PIPE, env=dict(os.environ, SELF_CALL="xxx") )
try:
process.communicate(svg_bytes,timeout=0)
except:
pass
processes.append(process)
for p in processes:
p.wait()
Как мне запустить несколько эти подпроцессы параллельно и чисто. Желательно в 1 строку.
(SELF_CALL — обходной путь, поскольку inkscape иногда выдает исключения при запуске нескольких экземпляров)
Подробнее здесь: https://stackoverflow.com/questions/788 ... n-parallel