Я пишу сценарий Lua и пытаюсь использовать require на файле, который существует в том же каталоге, что и основной скрипт. Кажется, мне не кажется, что нужно работать в этом случае, и попробовал несколько решений, которые я нашел, но ни один из них не работает. У меня есть следующие файлы вместе в каталоге:Lua Relative Path Обязательный
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» - требует поиска файлов по отношению к CWD, насколько я помню. –