2010-12-05 8 views
9

Gibt es so etwas wie Pythons virtualenv in lua?Lua Äquivalent von virtualenv?

So kann ich alle erforderlichen Lua-Module/Felsen in einer Sandbox-Umgebung installieren. Das ist gut für den Test, da ich nicht mit systemweiten Lua-Modulen oder der Umgebung eines anderen Lua-Projekts zu tun habe.

luarcks sieht seit seiner Unterstützung von self-contained installation vielversprechend aus. Aber ich bin interessiert, wenn es ein Werkzeug wie virtualenv gibt, das die Erstellung, Wartung und den Wechsel von Sandbox-Umgebungen automatisiert.

Antwort

4

Es sollte ziemlich einfach sein, zwischen den Lua-Installationen zu wechseln, indem Sie die Umgebungsvariable LUA_PATH setzen. Zitieren this page aus der Lua-Dokumentation:

Um seinen Pfad zu ermitteln, zunächst die globale Variable LUA_PATH überprüfen. Wenn der Wert von LUA_PATH eine Zeichenfolge ist, ist diese Zeichenfolge der Pfad. Andernfalls muss die Umgebungsvariable LUA_PATH überprüft werden.

[...]

die Komponenten in einem Pfad wird durch ein Semikolon (ein Zeichen selten verwendet für Dateinamen in den meisten Betriebssystemen) getrennt. Zum Beispiel, wenn der Pfad

; lua; c:?.? \ Windows \;/usr/local/lua// ?. lua

dann der Anruf erfordern "lili "versuchen, die folgenden Dateien zu öffnen:

lili
lili.lua
c: \ windows \ lili
/usr/local/lua/lili/lili.lua

-1

In Lua 5.1 gibt es die Environment-Tabelle, die Sie in globale Variablen einfügen können und dann Zeichenfolgen oder Dateien mit dieser Tabelle als _G laden und diese Datei einkapseln.

5

Haben Sie versucht LuaDist?

Es löst genau dieses Problem mit so genannten 'Bereitstellungen' - es ist ein einzelnes Verzeichnis, in dem alle Abhängigkeiten und Bibliotheken (und sogar Lua-Interpreter) installiert sind, unabhängig vom gesamten System.

2

Es sieht wie vert ist, was Sie suchen. Wie in Python virtualenvwrapper ermöglicht es Ihnen, eine in sich geschlossene Lua-Umgebung zu definieren. Ferner ist es erhältlich von luarocks.

+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. – jmoerdyk