我有一种情况需要使用两个模块......这两个模块都加载/引用另一个模块。所以我收到一个关于循环的错误。
这是module1中的代码:
require("posix")
posix.setenv("PATH", "/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin")
在模块2中我有同样的事情:
require("posix")
local ts = posix.stat(spath, "ctime")
我发现这篇文章: Lua: How to avoid Circular Requires
我尝试应用上述帖子所说的内容,并在两个模块中更改了我的逻辑,如下所示:
posix = posix or require("posix")
但我仍然收到错误消息。 任何建议,将不胜感激。
编辑1
tester.lua
local main =require("main")
main.lua
module (..., package.seeall)
-- Load libraries
require("commonfunctions")
require("luasql.postgres")
require("session")
commonfunctions.lua
posix = posix or require "posix"
session.lua
posix = posix or require "posix"
错误消息
lua: /usr/share/acf/lib//session.lua:15: loop or previous error loading module 'posix'
stack traceback:
[C]: in function 'require'
/usr/share/lib//session.lua:15: in main chunk
[C]: in function 'require'
/usr/share/myapp/main.lua:10: in main chunk
[C]: in function 'require'
/usr/share/lua/5.1/posix.lua:2: in main chunk
[C]: in function 'require'
/usr/share/acf/lib//commonfunctions.lua:4: in main chunk
[C]: in function 'require'
./kamfmfm-model.lua:3: in main chunk
[C]: in function 'require'
tester.lua:6: in main chunk
[C]: ?