`popen` 在 OpenResty 中读取时返回 nil

我在从 torch 包中包含时遇到了这个问题。最简单的例子来自于 "sys" 包。由于某种原因: https://github.com/torch/sys/blob/master/init.lua#L37-L40 在通过 OpenResty 启动时返回 nil,这将导致异常。

app.lua

local sys = require 'sys'

运行 resty app.lua 的结果为:

$ resty app.lua
/Users/vanpelt/torch/install/share/lua/5.1/sys/init.lua:40: attempt to index local 's' (a nil value)

(sys.execute 被调用以设置 sys.prefix)

我不知道为什么 popen 的行为很奇怪,但是认为应该处理 nil 输出情况。在这种情况下为什么子进程失败有任何想法吗?

点赞
用户6024951
用户6024951

问题出在 '' 上,在 Lua 中会有一些解释问题,我也曾存在这个问题(我忘记了为什么需要使用它,抱歉)。

要解决此问题,请尝试以下操作:

`local sys = require \ 'sys' `

2016-09-27 14:28:08