我正在編寫一個Lua腳本,並試圖對與主腳本位於同一目錄中的文件使用require。我似乎無法得到要求在這種情況下工作,並嘗試了幾種解決方案,我發現但似乎沒有工作。我有以下的文件一起在一個目錄:Lua相對路徑需要
main.lua
helper.lua
我嘗試了以下解決方案,並得到了錯誤的每個以下:
解決方案1:
local folderOfThisFile = (...):match("(.-)[^%.]+$")
local helper = require(folderOfThisFile .. 'helper')
lua: ...domizerWPF\DataFiles\LUA\main.lua:2: attempt to index local 'pathOfThisFile' (a nil value)
stack traceback:
...domizerWPF\DataFiles\LUA\main.lua:2: in main chunk
[C]: ?
解決方案2:
package.path = "/?.lua;" .. package.path
local helper = require('helper')
lua: ...domizerWPF\DataFiles\LUA\main.lua:2: module 'helper' not found:
no field package.preload['helper']
no file '/helper.lua'
no file '.\helper.lua'
no file 'C:\Program Files (x86)\Lua\5.1\lua\helper.lua'
no file 'C:\Program Files (x86)\Lua\5.1\lua\helper\init.lua'
no file 'C:\Program Files (x86)\Lua\5.1\helper.lua'
no file 'C:\Program Files (x86)\Lua\5.1\helper\init.lua'
no file 'C:\Program Files (x86)\Lua\5.1\lua\helper.luac'
no file '.\helper.dll'
no file '.\helper51.dll'
no file 'C:\Program Files (x86)\Lua\5.1\helper.dll'
no file 'C:\Program Files (x86)\Lua\5.1\helper51.dll'
no file 'C:\Program Files (x86)\Lua\5.1\clibs\helper.dll'
no file 'C:\Program Files (x86)\Lua\5.1\clibs\helper51.dll'
no file 'C:\Program Files (x86)\Lua\5.1\loadall.dll'
no file 'C:\Program Files (x86)\Lua\5.1\clibs\loadall.dll'
stack traceback:
[C]: in function 'require'
...domizerWPF\DataFiles\LUA\main.lua:2: in main chunk
[C]: ?
我已經嘗試瞭解決方案2上的各種路徑變體,如「?.lua;」和「./?.lua」無濟於事。
過程的當前工作目錄是什麼? –
你是指lua exe文件還是腳本文件? lua exe文件位於程序文件(x86)中。該腳本位於單獨的文件夾中,如下所示:c:\ lua files \。 – Lance
據我所知,'lua.exe' - require會查找與CWD相關的文件。 –