lua代码在require语句上失败。

问题描述

我继承了一些代码并尝试进行调试。这是一个用Lua编写的Web应用程序,用于后端。系统现在失败并显示以下错误:

398: 尝试调用全局函数'require'(一个空值)

代码

第398行是你在下面看到的“require”语句。

getstatus = function()
        require("processinfo")
        local value,errtxt=processinfo.package_version(packagename)
        etc...

我到目前为止所尝试的:

  1. 我尝试测试以确保它正在查找的包/模块存在。它存在。它在我的lua lib文件夹中

    test-dev:/usr/share# find / -name processinfo*

    /usr/share/lua/5.1/processinfo.lua

  2. 我还启动了lua命令行并尝试包含模块,如下所示:

    test-dev:/usr/share# lua Lua 5.1.5 版权所有 © 1994-2012 Lua.org,PUC-Rio

    require("processinfo")

    它似乎很高兴,没有错误消息。

  3. 最后,我尝试将require语句从第398行移动到文件顶部,与我所拥有的其他包含语句一起...就像这样:

    module(...,package.seeall) posix =需要(“posix”) utils = require("utils") processinfo =需要(“processinfo”)

    当我这样做时,关于require语句的错误消息消失了,但是我得到了关于我正在调用的字符串函数的错误。错误消息是:

    139:尝试索引全局'string'(一个空值)
    

    第139行是一个while循环的开头,看起来像这样:

    while string.find(result,"%$[% w_ ] +") do
    - do something
    end
    

附加信息

  • Lua版本是5.1
  • 代码在另一台服务器上正在工作...
点赞