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