2012-08-08 17 views
11

Muszę zadzwonić do wymagania na pliku lua, który nie zawsze będzie w tym samym miejscu. Próbowałem wywołać require na pełnej nazwie ścieżki, ale to też nie działa. Próbowałem nawet zastąpienie jednego z moja normalna praca wymaga z poprawną pełną nazwę ścieżki do tego samego plikuLua Wymagaj funkcji pełnej nazwy ścieżki

przykład zmieniając wymagać „foo” do wymagać „C: \ Users \ Me \ MyLuaProject \ foo”

, ale po przełączeniu go na pełną nazwę ścieżki nie może go już znaleźć. Zastanawiam się więc, czy można nawet wymagać wezwania na pełnej ścieżce, a jeśli nie, jak inaczej osiągnąć ten sam wynik?

Odpowiedz

13

Dodaj katalog zawierający plik package.path:

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

Można także dodać go do zmiennej środowiskowej LUA_PATH, ale jest to prawdopodobnie mniej łatwo modyfikować na bieżąco.

Typowy wzór dla modułów to abc.lua i abc/xyz.lua; wymagać pliki w podkatalogu takiego, użyć następujących:

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

Jesteś wybawieniem dziękuję bardzo dużo –

+0

musiałem dodać znak zapytania jako dziki przypadek: package.path = package.path .. ";/path/to/module /? lua" , ale może to sprawa z Linuksem – Luca

13

Jeśli wystarczy załadować plik, użyj dofile, która przyjmuje ścieżkę:

dofile("C:\\Users\\Me\\MyLuaProject\\foo") 
Powiązane problemy