Функция Lua Require для полного имени пути

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

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

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


person George Eric Oliver    schedule 08.08.2012    source источник


Ответы (2)


Добавьте каталог, содержащий файл, в package.path :

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

Вы также можете добавить его в переменную среды LUA_PATH, но это, вероятно, не так просто изменить на лету.

Обычный шаблон для модулей состоит в том, чтобы иметь abc.lua и abc/xyz.lua; чтобы потребовать файлы в таком подкаталоге, используйте следующее:

require "abc"
require "abc.xyz"
person furq    schedule 08.08.2012
comment
мне пришлось добавить вопросительный знак в качестве дикого случая: package.path = package.path .. ;/path/to/module/?.lua, но, возможно, это особенность Linux - person Luca; 16.05.2017

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

dofile("C:\\Users\\Me\\MyLuaProject\\foo")
person lhf    schedule 08.08.2012