2012-08-08 5 views
11

Ich muss die Anforderung für eine Lua-Datei aufrufen, die nicht immer an der gleichen Stelle sein wird. Ich habe versucht, require auf den vollständigen Pfadnamen zu bekommen, aber das scheint auch nicht zu funktionieren. Ich habe sogar versucht, einen meiner Arbeits normalen Austausch erfordert mit einem korrekten vollständigen Pfadnamen in die gleiche DateiLua Require-Funktion für einen vollständigen Pfadnamen

Beispiel Ändern erfordern „foo“ zu erfordern „C: \ Benutzer \ Me \ MyLuaProject \ foo“

aber wenn ich es auf den vollständigen Pfadnamen änderte, konnte es es nicht mehr finden. Ich frage mich also, ob Sie sogar auf einem vollständigen Pfad anfordern können und wenn nicht, wie würde ich dasselbe Ergebnis anders erreichen?

Antwort

13

Fügen Sie das Verzeichnis die Datei zu package.path enthält:

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

Sie auch an die LUA_PATH Umgebungsvariable hinzufügen können, aber das ist wahrscheinlich weniger leicht zu modifizieren on the fly.

Ein übliches Muster für Module ist abc.lua und abc/xyz.lua; Dateien in einem Unterverzeichnis wie das erforderlich ist, verwenden Sie die folgenden Schritte aus:

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

Sie sind ein Geschenk des Himmels danke sehr viel –

+0

Ich musste ein Fragezeichen als einen wilden Fall hinzufügen: package.path = package.path .. ";/Pfad/zu/Modul/?. Lua" aber vielleicht ist es eine Linux-Sache – Luca

13

Wenn Sie nur eine Datei laden müssen, verwenden Sie dofile, die einen Weg nimmt:

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