Невозможно прочитать стандартный вывод из python с popen в lua - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь прочитать стандартный вывод простого скрипта Python

    import time
    while True:
        print("test")
        time.sleep(1)

со следующим кодом lua

    local p = assert(io.popen("/usr/bin/python test.py", "r"))
    if not p then
        print("error")
    end
    print("process: "..tostring(p))

    while p do
        local line = p:read("*l")
        if line then
            print("line: "..tostring(line))
        end
    end

Это печатает идентификатор файла процесса, но без вывода.

Подстановка yes в качестве команды показывает, что код lua сам по себе должен работать.Однако ни один метод вызова скрипта python (включая shebang) не даст никакого результата.Изменение на sys.stdout.write("test" + "\n") также не имеет значения.

Я пробовал это на двух машинах, работающих под управлением archlinux и debian.Первый - это Python 3.7.2 и Lua 5.3.5.

...