Lua require相对路径

6
我无法从相对路径加载.Lua文件。
这个可以工作:
2.lua
function Math( v1, v2 )
 return v1 + v2
end

1.lua

package.path = package.path .. ';C:/Users/Lukas/Desktop/lua/function/?.lua'
require("2")
print(Math(1,6))

这个不起作用:

package.path = package.path .. './function/?.lua;'
require("2")
print(Math(1,6))

我找不到解决我的问题的方法。


3
请将原始问题保持不变。将解决方案作为答案添加。 - lhf
2个回答

8
您缺少一个分号;来将新路径与旧路径分开:
package.path = package.path .. ';./function/?.lua;'

require 可能会显示以下消息:

no file './2.lua./function/2.lua'

这应该已经引起了您对问题的关注。


它对我有效。你可能需要在包含“function”的目录中启动Lua。不过,我不知道如何在Windows中执行此操作。 - lhf
问题可能出在Zerobrane编辑器上。我在命令行上尝试了“lua 1.lua”,它可以工作。 - Lukas
1
@LukasSchulig,如果您正在使用ZeroBrane Studio,请确保将项目文件夹设置为C:/Users/Lukas/Desktop/lua/,因为当执行脚本时,它被设置为当前文件夹,您指定的相对路径将是相对于该文件夹的。当您启动脚本时,您会看到Program 'lua.exe' started in '<project folder>'消息,显示它启动的文件夹。 - Paul Kulchenko

3
package.path = package.path .. ';function/?.lua'

或者

package.path = 'function/?.lua;' .. package.path

由你决定。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接