2012-08-08 60 views
11

我需要在lua文件上调用require,这个文件并不总是在同一个地方。我试图在完整的路径名称上调用require,但这似乎并不奏效。我甚至尝试用正确的完整路径名称替换我的工作正常的一个要求到同一个文件Lua需要完整路径名称的功能

例如改变 需要“富” 到 要求“C:\用户\我\ MyLuaProject \富”

但是当我将它切换到完整路径名称时,它不能再找到它。所以我想知道你是否可以在完整路径上调用require,如果不是,我会如何达到不同的结果?

回答

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" 
+0

你是一个天赐良机非常感谢你很多 – 2012-08-08 17:50:09

+0

我不得不添加一个问号作为一个通用案例: package.path = package.path ..“;/path/to/module/?. lua” 但也许这是一个Linux的事情 – Luca 2017-05-16 12:07:30

13

如果你只需要加载一个文件,使用dofile,这需要一个路径:

dofile("C:\\Users\\Me\\MyLuaProject\\foo")