Мне нужно выполнить код Python из латексных файлов (для включения данных эксперимента).
Пакет CTAN python
служит для этой цели, но по какой-то причине не может выводиться в подписи к рисункам.
Я взломал решение на основе write18
, которое прекрасно работает, но я понял, что было бы лучше иметь "сессию" оболочки Python, работающую в фоновом режиме.Таким образом, я мог бы просто загрузить свои данные один раз в начале.
Теоретически это возможно при использовании Linux fifos:
# create fifos
mkfifo /tmp/infifo
mkfifo /tmp/outfifo
# start python process
python < /tmp/infifo > /tmp/outfifo &
# listen for results
cat /tmp/outfifo &
# write something
echo "print('hello world')" > /tmp/infifo
-> hello world
Но после этого короткого взаимодействия процесс python и output cat обрабатываютпрекратить.Использование cat
вместо echo
для отправки данных процессу замедляет процессы, но кажется, что ответы буферизуются и отправляются только после завершения процесса ввода cat.