Lua Требуется функция с полным именем пути

Мне нужно вызвать require в файле lua, который не всегда будет в одном месте. Я пытался вызвать запрос на полное имя пути, но это, похоже, не работает. Я даже попытался заменить один из моих рабочих нормальных требует с правильным полным именем пути к тому же файлу

изменение примера   требуют "foo" в   требуется "C:\Users\Me\MyLuaProject\foo"

но когда я переключил его на полное имя пути, он больше не мог его найти. Поэтому мне интересно, можете ли вы даже позвонить по полному пути, и если не так, как бы добиться того же результата по-другому?

Ответ 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"

Ответ 2

Если вам просто нужно загрузить файл, используйте dofile, который принимает путь:

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