13

我需要在一个并不总是在同一个地方的 lua 文件上调用 require。我试图在完整的路径名上调用 require ,但这似乎也不起作用。我什至尝试用相同文件的正确完整路径名替换我的正常工作要求之一

将要求“foo”更改为要求“C:\Users\Me\MyLuaProject\foo”的示例

但是当我将它切换到完整路径名时,它再也找不到它了。所以我想知道您是否甚至可以在完整路径上调用 require ,如果不能,我将如何以不同的方式获得相同的结果?

4

2 回答 2

17

如果您只需要加载文件,请使用dofile,它需要一个路径:

dofile("C:\\Users\\Me\\MyLuaProject\\foo")
于 2012-08-08T17:05:50.107 回答
14

将包含文件的目录添加到package.path

package.path = package.path .. ";C:\\Users\\Me\\MyLuaProject"
require "foo"

您也可以将它添加到 LUA_PATH 环境变量中,但这可能不太容易即时修改。

模块的常见模式是拥有 abc.lua 和 abc/xyz.lua;要在这样的子目录中要求文件,请使用以下命令:

require "abc"
require "abc.xyz"
于 2012-08-08T16:34:25.300 回答