2012-08-08 17 views
11

Devo chiamare il requisito su un file lua che non sarà sempre nello stesso posto. Stavo cercando di chiamare require sul nome completo del percorso, ma non sembra che funzioni. Ho anche provato a sostituire uno dei miei normale di lavoro richiede un corretto percorso completo allo stesso fileLua Richiede la funzione su un nome percorso completo

esempio cambiando richiedono "pippo" a richiedono "C: \ Users \ Me \ MyLuaProject \ foo"

ma quando l'ho passato al nome completo del percorso non è più riuscito a trovarlo. Quindi mi chiedo se è possibile chiamare anche richiedere su un percorso completo e se non come potrei ottenere lo stesso risultato in modo diverso?

risposta

13

aggiungere la directory contenente il file da package.path:

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

È inoltre possibile aggiungere alla variabile d'ambiente LUA_PATH, ma questo è probabilmente meno facile da modificare al volo.

Un modello comune per i moduli è quello di avere abc.lua e abc/xyz.lua; per richiedere i file in una sottodirectory del genere, utilizzare il seguente:

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

Sei una manna dal cielo vi ringrazio molto –

+0

ho dovuto aggiungere un punto interrogativo come un caso selvaggio: package.path = package.path .. ";/percorso/a/modulo/?. lua" ma forse è una cosa di Linux – Luca

13

Se avete solo bisogno di caricare un file, utilizzare dofile, che prende un percorso:

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