Lua要求在完整路径名上使用函数

Geo*_*ver 12 lua path require

我需要在一个lua文件上调用require,它不会总是在同一个地方.我试图在完整路径名称上调用require,但这似乎也没有用.我甚至尝试用正确的完整路径名替换我的一个正常工作要求到同一个文件

示例更改需要"foo"才能要求"C:\ Users\Me\MyLuaProject\foo"

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

fur*_*urq 14

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

package.path = package.path .. ";C:\\Users\\Me\\MyLuaProject"
require "foo"
Run Code Online (Sandbox Code Playgroud)

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

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

require "abc"
require "abc.xyz"
Run Code Online (Sandbox Code Playgroud)

  • 我不得不添加一个问号作为一个疯狂的情况:package.path = package.path ..“;/path/to/module/?.lua”但也许这是一个linux的事情 (2认同)

lhf*_*lhf 13

如果您只需要加载文件,请使用dofile带有路径的文件:

dofile("C:\\Users\\Me\\MyLuaProject\\foo")
Run Code Online (Sandbox Code Playgroud)