2012-08-08 13 views
11

Necesito llamar al require en un archivo lua que no siempre estará en el mismo lugar. Intenté llamar a require en el nombre de ruta completo, pero eso tampoco parece funcionar. Incluso he intentado reemplazar uno de mi trabajo normal requiere con un nombre de ruta completa en el mismo archivoLua Requiere función en un nombre de ruta completo

ejemplo, cambiar requieren "foo" a requieren "C: \ Users yo \ \ MyLuaProject \ foo"

pero cuando lo cambié al nombre completo de ruta ya no lo encontraba. Entonces, me pregunto si puedes llamar a require en una ruta completa y si no, ¿cómo lograré el mismo resultado de manera diferente?

Respuesta

13

Añadir al directorio que contiene el archivo de package.path:

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

También puede añadirlo a la variable de entorno LUA_PATH, pero esto es probablemente menos fácil de modificar sobre la marcha.

Un patrón común para los módulos es tener abc.lua y abc/xyz.lua; para requerir archivos en un subdirectorio de esa manera, utilice la siguiente:

require "abc" 
require "abc.xyz" 
+0

Usted es un regalo del cielo muchas gracias mucho –

+0

tuve que agregar un signo de interrogación como un caso salvaje: package.path = package.path .. ";/path/to/module/?. lua" pero tal vez es una cosa de Linux – Luca

13

Si sólo tiene que cargar un archivo, utilice dofile, que tiene un camino:

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