我需要在一个lua文件上调用require,这个文件并不总是在同一个地方。我试图在完整路径名称上调用require,但这似乎也没有用。我甚至尝试用正确的完整路径名替换我的一个正常工作要求到同一个文件
更改示例 需要“foo” 至 要求“C:\ Users \ Me \ MyLuaProject \ foo”
但是当我将其切换到完整路径名时,它再也找不到了。所以我想知道你是否甚至可以在完整路径上调用require,如果不能,我将如何以不同方式获得相同的结果?
答案 0 :(得分:13)
将包含该文件的目录添加到package.path:
package.path = package.path .. ";C:\\Users\\Me\\MyLuaProject"
require "foo"
您也可以将它添加到LUA_PATH环境变量中,但这可能不太容易动态修改。
模块的常见模式是拥有abc.lua和abc / xyz.lua;要求像这样的子目录中的文件,请使用以下内容:
require "abc"
require "abc.xyz"
答案 1 :(得分:13)
如果您只需要加载文件,请使用dofile
,其中包含路径:
dofile("C:\\Users\\Me\\MyLuaProject\\foo")