Search code examples
pathluarequire

Lua Require function on a full path name


I need to call the require on a lua file that will not always be in the same place. I was trying to call require on the full path name but that doesn't seem to be working either. I even tried replacing one of my working normal requires with a correct full path name to the same file

example changing require "foo" to require "C:\Users\Me\MyLuaProject\foo"

but when i switched it to the full path name it could no longer find it. So I am wondering if you can even call require on a full path and if not how would i achieve the same result differently?


Solution

  • Add the directory containing the file to package.path:

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

    You can also add it to the LUA_PATH environment variable, but this is probably less easy to modify on the fly.

    A common pattern for modules is to have abc.lua and abc/xyz.lua; to require files in a subdirectory like that, use the following:

    require "abc"
    require "abc.xyz"