无法使用lua中的popen从python读取标准输出

无法使用lua中的popen从python读取标准输出,python,lua,stdout,popen,Python,Lua,Stdout,Popen,我正在尝试阅读一个简单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: "..to

我正在尝试阅读一个简单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。

能否删除
python
脚本中的while循环并重试?好的,这确实会生成一次输出。它也可以在for循环中工作。这是否意味着python会缓冲打印直到while循环终止?请尝试,
sys.stdout.write(“test”+“\n”);sys.stdout.flush()
:)很酷,谢谢!几天来,我一直在苦苦思索,问题出在love2d或lua身上。我还发现这显示了其他一些方式。