2010-12-05 10 views
9

¿Hay algo así como virtualenv de pitón en lua?Lua equivalente de virtualenv?

De modo que puedo instalar todos los módulos lua requeridos/rocas en un entorno de espacio aislado. Esto es bueno para la prueba, ya que no voy a meter la pata con los módulos lua de todo el sistema o el entorno de otro proyecto lua.

luarocks parece prometedor ya que es compatible con self-contained installation. Pero me interesa que exista alguna herramienta como virtualenv que automatice la creación, el mantenimiento y el cambio de entornos de espacio aislado.

Respuesta

4

Debería ser bastante sencillo cambiar entre las instalaciones de Lua configurando la variable de entorno LUA_PATH. Citando this page de la documentación de Lua:

Para determinar su ruta, primero se requiere verificar la variable global LUA_PATH. Si el valor de LUA_PATH es una cadena, esa cadena es la ruta. De lo contrario, requiere que se verifique la variable de entorno LUA_PATH.

[...]

Los componentes de una ruta están separados por punto y coma (un personaje rara vez se utiliza para nombres de archivo en la mayoría de los sistemas operativos). Por ejemplo, si la ruta es

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

entonces la llamada requieren "Lili "intentará abrir los siguientes archivos:

lili
lili.lua
C: \ windows \ Lili
/usr/local/lua/lili/lili.lua

-1

En Lua 5.1 hay una tabla de entorno, que puede colocar en variables globales y luego cargar cadenas o archivos con esa tabla como _G, encapsulando ese archivo.

5

¿Has probado LuaDist?

Resuelve exactamente este problema utilizando las llamadas 'implementaciones': es un único directorio en el que se instalan todas las dependencias y bibliotecas (e incluso el intérprete de Lua), independientemente de todo el sistema.

2

Parece que vert es lo que estás buscando. Como virtualenvwrapper en Python, le permite definir un entorno autónomo de Lua. Además, está disponible en luarocks.

+0

Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace de referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia. – jmoerdyk