Lua Require 函数对完整路径名

Posted

技术标签:

【中文标题】Lua Require 函数对完整路径名【英文标题】:Lua Require function on a full path name 【发布时间】:2012-08-05 19:38:48 【问题描述】:

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

示例更改 需要“富” 到 需要 "C:\Users\Me\MyLuaProject\foo"

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

【问题讨论】:

【参考方案1】:

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

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

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

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

require "abc"
require "abc.xyz"

【讨论】:

我不得不添加一个问号作为一个野生案例:package.path = package.path .. ";/path/to/module/?.lua" 但也许它是一个 linux 的东西跨度> 【参考方案2】:

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

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

【讨论】:

以上是关于Lua Require 函数对完整路径名的主要内容,如果未能解决你的问题,请参考以下文章

通过相对路径加载 Lua 文件

lua路径问题

LUA require 搜索路径指定方法

xLua使用require改变路径加载Lua脚本

需要 Lua 相对路径

Unity中lua 的 io.open() 文件路径的问题